Runtime.getRuntime (). Exec () не зависит от платформы, так как запускает внешний исполняемый файл на каждой платформе. Разумеется, сам исполняемый файл должен быть там, поэтому запуск notepad.exe в Linux, скорее всего, не будет работать (кроме случаев, когда у вас установлены Wine и Notepad, но это уже другая история).
В Windows введите все, что вы вводите в cmd.exe (подробности приведены ниже). Но для автоматического поиска пути в Windows вам нужно сделать что-то вроде
Runtime.getRuntime().exec("start iexplore.exe");
или
Runtime.getRuntime().exec("start my.pdf");
, который открывает файл PDF с соответствующим средством просмотра.
В linux вы можете делать все, что вы делаете в оболочке, такой как Bash, но вы не можете использовать встроенные команды bash, такие как оператор pipe. Вы можете просто запускать программы и передавать аргументы.
Для запуска другого экземпляра Java в Linux вы можете использовать:
Runtime.getRuntime().exec(new String[] {"java","-jar","myjar.jar"});
Используйте абсолютный путь к исполняемому файлу Java, если он не находится в PATH.