Как заставить исполняемый файл Java работать в фоновом режиме, а не на переднем плане? - PullRequest
3 голосов
/ 20 мая 2011

Я написал сценарий оболочки для запуска ряда экспериментов, поэтому мне не придется делать это вручную.Сценарий запускает файл java .jar 30 раз и выполняет набор из этих 30 раз 17 раз, изменяя несколько переменных между ними.

Я вызываю программу следующим образом:

java -Djava.library.path=/Users/me/Desktop/Cfiles/DynamicCTGLayout/build/Release  -jar [name of .jar file]

Тем не менее, я ничего не могу сделать параллельно во время работы программы, потому что, когда эта строка выполняется, исполняемый файл Java выскакивает в передней части экрана.По сути, когда я работаю над чем-то другим, это прерывается каждые 1-1,5 минуты.так что я смотрю на несколько часов, я не могу на самом деле использовать компьютер.

Есть ли способ вызвать исполняемый файл, чтобы он не появлялся поверх всех других программ?

С уважением, WhiteTiger

Редактировать: В основном я ищу Mac OSX, эквивалентный Windows '

start /min java [arguments]

Ответы [ 5 ]

6 голосов
/ 20 мая 2011

Используйте javaw вместо java (может потребоваться убедиться, что он находится на пути). Это запустит его без какой-либо консоли.

javaw -Djava.library.path=/Users/me/Desktop/Cfiles/DynamicCTGLayout/build/Release -jar [name of .jar file]

1 голос
/ 31 августа 2016

У меня была такая же проблема при выполнении программы, инкапсулированной в JAR. Я исправил это, добавив опцию -Djava.awt.headless=true в мой вызов командной строки (см. oracle docs и этот вопрос ). Итак, вы бы запустили:

java -Djava.awt.headless=true -Djava.library.path=/Users/me/Desktop/Cfiles/DynamicCTGLayout/build/Release -jar [name of .jar file]
1 голос
/ 20 мая 2011

Вы можете сделать это в Unix, добавив символ & в конце командной строки, он выдвигает процесс на задний план

0 голосов
/ 20 мая 2011

В Windows вы можете использовать:

start /min java [parameters]

Это запустит программу свернутой и не отвлечет внимание. Я успешно проверил его в Windows 7 Professional x64.

0 голосов
/ 20 мая 2011

Если вы используете Linux (или ОС, которая использует X), cou может установить «поддельный» X-сервер на месте с помощью Xvfb и установить переменную DISPLAY для приложения JAVA, чтобы оно использовало это значение.Недостаток: вы не можете получить доступ к GUI запущенного приложения (что, на мой взгляд, не проблема в вашем случае).

На одной оболочке: Xvfb :2

Вкл.другая оболочка: DISPLAY=:2 java -jar ...

...