Ответ 1
Файл .bashrc используется для установки переменных, используемых интерактивными оболочками входа. Если вы хотите, чтобы эти переменные среды были доступны в Eclipse, вам нужно поместить их в/etc/environment.
Я могу запустить пример программы hadoop из командной строки и пытаюсь запустить ту же программу из Eclipse, чтобы я мог ее отлаживать и лучше понимать.
Для программы командной строки некоторые переменные среды задаются в .bashrc
, и в программе hadoop они читаются как System.getenv().get("HADOOP_MAPRED_HOME")
. Но когда я запускаю java-программу с System.getenv().get("HADOOP_MAPRED_HOME")
, из Eclipse я получаю null.
Я попытался передать параметры -DHADOOP_MAPRED_HOME=test
в VM в конфигурациях среды выполнения из Eclipse, но все равно получаю null в автономной программе. Как сделать переменные среды видимыми в Eclipse? Когда я повторяю через System.getenv()
в Eclipse, я вижу много переменных, таких как DISPLAY
, USER
, HOME
и другие. Где они установлены? Я использую Ubuntu 11.04.
Файл .bashrc используется для установки переменных, используемых интерактивными оболочками входа. Если вы хотите, чтобы эти переменные среды были доступны в Eclipse, вам нужно поместить их в/etc/environment.
Вы также можете определить переменную среды, которая видна только внутри Eclipse.
Перейдите в Run → Run Configurations... и выберите вкладку "Environment".
Здесь вы можете добавить несколько переменных среды, которые будут специфичны для вашего приложения.
Я создал для этого плагин eclipse, потому что у меня была такая же проблема. Не стесняйтесь загружать и вносить свой вклад.
Он все еще находится в раннем развитии, но он выполняет свою работу уже для меня.
Вы можете установить домашний каталог Hadoop, отправив на виртуальную машину -Dhadoop.home.dir. Чтобы отправить эти параметры во все приложение, которое вы выполняете внутри eclipse, вы можете установить их в Window- > Preferences- > Java- > Installed JREs- > (выберите установку JRE) → Изменить.. → (установите значение в текстовое поле "По умолчанию VM:" ). Вы можете заменить ${HADOOP_HOME} на путь к вашей установке Hadoop.
Вы также можете запустить затмение в оболочке.
Вы экспортируете расширение, прежде чем вызывать затмение.
Пример:
#!/bin/bash
export MY_VAR="ADCA"
export PATH="/home/lala/bin;$PATH"
$ECLIPSE_HOME/eclipse -data $YOUR_WORK_SPACE_PATH
Тогда вы можете иметь несколько экземпляров затмения в их собственной среде, включая рабочее пространство.
Для людей, которые хотят переопределить переменную окружения ОС в проекте Eclipse, см. также ответ @MAX.
Это полезно, если у вас есть проект проекта затмения проекта проекта на той же машине.
Проект выпуска может использовать переменную OS Environment для использования в тестах, а проект eclipse может переопределить его для использования в целях разработки.