Как сбросить или убить контекст JVM? - PullRequest
0 голосов
/ 12 февраля 2009

Я запускаю простой Java-клиент с помощью команды java <class file>. Команда java фактически вызывается системным процессом. Это на Unix.

Мы столкнулись с проблемой с дисплеем X11. Поэтому мы добавили export DISPLAY=:0.0 в файл запуска, и проблема с отображением была решена. Теперь, когда строка export DISPLAY=:0.0 удалена из файла запуска и java-клиент снова запущен, мы не можем вернуться к старому состоянию, то есть больше не получаем ошибку отображения X11. Так что есть что-то, что сохраняется в системе. Есть ли способ убедиться, что контекст JVM был уничтожен перед запуском клиента?

Мы убили процесс, который запускает клиент Java, а затем перезапустили процесс, чтобы снова запустить клиент Java. Но не удалось вернуться к старому состоянию.

[Edit] Я забыл упомянуть, что я уже пробовал "unset DISPLAY" в файле остановки. Файл запуска запускается при запуске среды, а файл остановки запускается при выходе из строя. Я также пробовал режим без головы, но это не работает для нашей программы.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2009

Если вы ранее выполняли команду экспорта в текущей оболочке (даже из файла запуска), то это значение находится в вашей среде. Отключение (или получение новой оболочки с чистой средой) - единственный способ избавиться от настроек среды.

Я бы предложил добавить строку в ваш скрипт запуска, чтобы отобразить $ DISPLAY, чтобы было ясно, что в данный момент установлено, пока вы решаете проблему.

Если вашему процессу на самом деле не нужен дисплей xwindows, вам следует запустить JVM в режиме без головы. Подробности здесь .

2 голосов
/ 12 февраля 2009

Вы, вероятно, установили среду DISPLAY в оболочке. Попробуйте ввести «export DISPLAY =» или «unset DISPLAY».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...