Продолжить выполнение в консоли после запуска jar - PullRequest
1 голос
/ 05 ноября 2010


У меня есть jar, который выполняется бесконечно , потому что я создаю поток, и я присоединяюсь () к edt с этим потоком.
Если я запускаю эту банку с двойным щелчком мыши, скажем, в Windows создается процесс javaw, который работает вечно, и я могу продолжать работать , что я хочу.
Теперь, если я попытаюсь запустить jar из cmd с помощью java -jar myJar.jar, выполнение сразу же останавливается. Я хочу продолжить выполнение cmd после запуска jar.

* Примечание: * Я сейчас пытаюсь сделать это в консоли Linux, к которой я получаю доступ с помощью putty. Поэтому, пожалуйста, учтите это в своем ответе

Спасибо

Ответы [ 5 ]

3 голосов
/ 05 ноября 2010

Попробуйте это

java -jar myJar.jar&

Это означает, что процесс запускается и работает в фоновом режиме. Если вы хотите получить его обратно, введите fg. Чтобы вернуть его в фоновом режиме, нажмите CTRL + Z (это приостанавливает его выполнение и возвращает запрос оболочки), а затем выполните bg, чтобы возобновить его в фоновом режиме.

2 голосов
/ 05 ноября 2010

java -jar myJar.jar &

& переводит команду в фоновый режим и позволяет выполнять другие действия из командной строки.

Это очень простые вещи оболочки UNIX / Linux. Я предлагаю вам найти / прочитать онлайн-учебник или книгу о оболочке, которую вы используете (например, bash). Это сделает вашу жизнь намного проще. Или, если вы мазохист, прочитайте man bash.

В настоящее время я пытаюсь сделать это в консоли Linux, к которой я получаю доступ через putty.

Использование шпаклевки на самом деле не имеет значения.

2 голосов
/ 05 ноября 2010

Просто запустите его как

java -jar myJar.jar &

. & поместит команду в фоновый режим, где она успешно выполняется.Просто базовая функция оболочки Unix.

0 голосов
/ 05 ноября 2010

Я лично предпочитаю использовать экран. Потому что вы даже можете легко определить идентификатор сеанса и восстановить его.

Вы можете запустить банку с помощью следующей команды:

screen -m -d java -jar myJar.jar

С помощью следующей команды вы можете просмотреть все текущие сеансы:

screen -ls

Вы можете открыть сеанс с помощью:

screen -r PID/Sessionname
0 голосов
/ 05 ноября 2010

Удалить этот ответ после последнего комментария ОП - это не ответ на письменный вопрос, а дополнительный ответ на его актуальную проблему


В Windows попробуйте

start java -jar myJar.jar

Справка: Команда запуска MS-DOS

...