Runtime.getRuntime (). Exec () не работает при двойном щелчке исполняемого файла jar

1

У меня есть код Java (swing), который вызывает вызов Runtime.getRuntime().exec(). Программа работает отлично, если я запускаю ее из командной строки.

Проблема в том, что когда я не запускаюсь из командной строки, приложение не выполняет вызов Runtime.getRuntime().exec(), поэтому я не могу выполнить системные команды, которые я хочу. Когда я дважды щелкаю файл jar, появляется GUI, и все работает отлично, за исключением системного вызова.

Вот аналогичный поток о программе, выводимой на консоль, после двойного щелчка на исполняемом банке, но это не совсем то, что я ищу: Double Clicking JAR файл не открывает командную строку

Любые идеи о том, как заставить это работать? Любая помощь очень ценится!

Я запускаю Ubuntu на виртуальной машине, и я также в конечном итоге хочу передать это в Mac OS.

  • 0
    Без консоли вы не увидите возможных исключений. Добавьте необработанный обработчик исключений или просто попробуйте Runtime.getRuntime().exec() обход Runtime.getRuntime().exec() и log (возможных) для какого-либо файла или отобразите их в диалоговом окне.
  • 0
    Вы можете использовать java -jar /usr/a/jarfilename.jar, чтобы увидеть, есть ли исключения
Показать ещё 3 комментария
Теги:
executable-jar

1 ответ

0
Лучший ответ

Когда вы вызываете исполняемый банку, дважды щелкая по Ubuntu, текущий рабочий каталог является вашим домашним каталогом, это не каталог, в котором находится банка.

Вы были правы @Volker Stampa, абсолютное имя пути было необходимо для вызова исполняемого файла, который мне нужно было вызвать. Я попробовал это сразу после того, как вы его прокомментировали, но, видимо, у меня была неправильная строка для пути. Извлеченный урок, абсолютные пути всегда лучше. Спасибо за вашу помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню