Мне нужно запустить внешнее приложение TeamViewer из моего приложения JavaFX. Так что я TeamViewer.app файл, который я копирование во временную папку и запуская его с помощью:Directory not empty java.io.IOException
Runtime.getRuntime().exec("open /path/to/Teamviewer.app");
Но это бросает каталог не пустой IOException.
Я также попытался запустить с использованием файла оболочки, где написал команду «open /path/to/Teamviewer.app» для запуска.sh и запустил launch.sh, используя процесс, созданный ProcessBuilder.
если я запустил launch.sh с терминала, он работает. Но из Java программы, следующего исключение:
SEVERE: null
java.io.IOException: Cannot run program "sh" (in directory "/Applications/ColorDx.app/Contents/Java"): error=66, Directory not empty
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at com.sc.colordx.controller.ColorDxSupportController.executeCommand(ColorDxSupportController.java:288)
at com.sc.colordx.controller.ColorDxSupportController.launchSetup(ColorDxSupportController.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Что может быть причиной для каталогов не пустого исключения? Он должен быть не пустым, поскольку я скопировал TeamViewer.app там.
Это может быть проблема с несколькими потоками? Значит, я сначала копирую TeamViewer.app и сразу же запускаю его. Есть ли вероятность, что команда запуска вызывается до завершения копирования?
TIA
Сначала я попытался запустить java .exec (...) в папку, содержащую простое приложение (без этой части копии сначала). Также я бы попытался с помощью 'Process proc = Runtime.getRuntime(). Exec (new String [] {" sh "," simpleapp "}));' Это работает? – chris
нет не работает даже без копирования. Фактически вместо копирования приложения teamviewer через Java я копировал с помощью самой команды оболочки. Значит до «open simpleapp» в launch.sh. Я написал команду cp, чтобы скопировать ее в первую очередь. Но по-прежнему такая же ошибка, что каталог не пуст. –
Итак, я бы предложил исправить проблему «запустить unix-процесс из java». May это помогает: http://stackoverflow.com/questions/525212/how-to-run-unix-shell-script-from-java-code – chris