2014-01-13 3 views
2

Я пытаюсь запустить исполняемые файлы, которые установлены в моей системе с помощью Java 7 ProcessBuilder. Я заметил, что переменная окружения PATH, которая доступна черезКак установить переменную среды PATH для JVM

System.getenv("PATH"); 

не включает в свой собственный, пользовательский набор путь. Он возвращает это:

/usr/bin:/bin:/usr/sbin:/sbin 

Мой путь выглядит следующим образом:

/Users/saschaf/.bin:/Users/saschaf/Entwicklung/spring-roo-1.2.4.RELEASE/bin:/usr/local/opt/ruby/bin:/usr/local/bin:/Users/saschaf/Entwicklung/android-sdk-macosx/tools:/Users/saschaf/Entwicklung/android-sdk-macosx/platform-tools:/usr/local/share/npm/bin:/Users/saschaf/node_modules/.bin:/Users/saschaf/Entwicklung/git/tools:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 

Я не знаю, как установить переменную PATH так, что JVM использует правильный. В чем проблема?

Я запускаю последнюю версию OS X Mavericks, JDK 1.7.0_25-b15, Maven Apache Maven 3.1.1.

+2

Я бы предпочел вместо того, чтобы вставлять их в PATH или устанавливать PATH из вашей программы, чтобы просто выполнять программы по их абсолютной траектории. – akluth

ответ

1

Прямо из documentation:

Вы можете запустить JDK просто отлично без установки переменной PATH, или вы можете по желанию установить его в качестве удобства. Тем не менее, вы должны установить переменную пути, если хотите иметь возможность запускать исполняемые файлы (javac, java, javadoc и т. Д.) Из любого каталога без необходимости вводить полный путь к команде. Если вы не установите переменную PATH, необходимо указать полный путь к исполняемому файлу каждый раз, когда вы запускаете его, например:

% /usr/local/jdk1.7.0/bin/javac MyClass.java 

Чтобы узнать, если путь правильно установлен, выполните:

% java -version 

Это напечатает версию инструмента java, если она сможет его найти. Если версия устарела или вы получаете ошибку java: команда не найдена, то путь не установлен правильно.

Чтобы установить путь навсегда, укажите путь в своем файле запуска.

Для C оболочки (CSH), отредактировать файл запуска (~/.cshrc):

set path=(/usr/local/jdk1.7.0/bin) 

Для Баш, редактирование загрузочного файла (~/.bashrc):

PATH=/usr/local/jdk1.7.0/bin: 
export PATH 

Для ksh файл запуска называется переменной окружения, ENV. Для того, чтобы установить путь:

PATH=/usr/local/jdk1.7.0/bin: 
export PATH 

ШГ, редактировать файл профиля (~/.profile):

PATH=/usr/local/jdk1.7.0/bin: 
export PATH 

Затем загрузите файл запуска и убедитесь, что путь установлен, повторяя команду Java :

+0

Вот что я пробовал. AFAIK OS X использует.bash_profile для переменных среды, но я также пробовал .bashrc и .profile, но безрезультатно. Я хотел бы, чтобы все мои коллеги использовали существующие настройки PATH, но это может быть невозможно. На данный момент я настроил переменную PATH в моей среде IDE и посоветую своим коллегам сделать это. –

+0

Да, это может быть любой из файлов запуска Bash - ~/.bashrc, ~/.bash_profile, ~/.profile. установка его в IDE, вероятно, является самым быстрым способом, но затем снова не будет работать из среды IDE, если вы не предоставите абсолютный путь. по той же причине рекомендуется установить эти переменные в bash start up files. – Ashish

+0

, если вы нашли мой ответ полезным, пожалуйста, не забудьте проголосовать или принять. – Ashish

1

Вы можете передать вашу оболочка $PATH в качестве параметра командной строки:

$ java -DPATH=$PATH -cp … 

Вы можете использовать эту example для изучения среды.

Смежные вопросы