Getenv() не работает

125
19

Я создал автономное приложение java в Ubuntu 10.04, используя NetBeans 6.9. Я не могу использовать команду getenv() в Netbeans, хотя если я создам отдельный файл java в gedit и скомпилирую его в терминале, тогда он даст желаемый результат.


System.out.println(System.getenv("TRGRAPH"));

Приведенный выше код при выполнении через терминал дает желаемый результат, но тот же код, если я пытаюсь запустить в Netbeans, тогда он возвращает нулевую строку.

Может ли кто-нибудь сказать мне, как получить результат с использованием netbeans??

спросил(а) 2020-04-04T01:31:00+03:00 3 месяца назад
1
Решение
67

Вам нужно запустить Netbeans из той же терминала после, которую вы установили и экспортировали TRGRAPH.


Пример: в терминале:

$ export TRGRAPH=foo
$ netbeans&

ответил(а) 2020-04-04T01:43:10.934174+03:00 3 месяца назад
54

Это означает, что TRGRAPH не определяется в процессе. Окружение наследуется от среды Netbeans. Убедитесь, что Netbeans получает переменную, например, запустив ее из командной строки или вызывая ее с помощью оболочки script для поиска вашего .bashrc (или везде, где вы определяете TRGRAPH).


В качестве альтернативы вы можете запустить внешний процесс Java с помощью ProcessBuilder и передать ему любую понравившуюся вам среду. Довольно сложная, но очень гибкая.

ответил(а) 2020-04-04T01:31:00+03:00 3 месяца назад
54

Я использую Eclipse, а не NetBeans, но я уверен, что они похожи. Найдите диалог, который будет управлять запуском вашей программы. В этом диалоге, вероятно, есть место, где вы можете указать переменные среды, которые должны быть установлены при запуске вашего приложения.

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

ответил(а) 2020-04-04T01:31:00+03:00 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема