2014-10-02 6 views
1

Я пытался сделать питон скрипт для переключения между 32-битной и 64-битной Java, но по какой-то причине

os.system('export JAVA_HOME=/usr/java/path') 
os.system('export PATH=$JAVA_HOME/bin:$PATH') 

ничего не делает, но вручную это работает. Как я могу это исправить? (BTW, это работает в системе Linux.)

ответ

1

export линия будет установить переменные окружения для оболочки, в которой он выполняется, и все его подпункты раковин. Но здесь происходит то, что Python создает новую оболочку, выполняет линию для установки переменной окружения, а затем оболочка завершается. Это означает, что переменная окружения больше не действует. Фактически, переменная среды JAVA_HOME, которую вы устанавливаете в первой строке, даже не действует для второй строки, когда она выполняется, потому что она находится в собственной оболочке, которая также немедленно завершается!

Путь вокруг него, чтобы запустить весь скрипт, который устанавливает переменную окружения, а затем запускает Java:

#!/bin/bash 

JAVA_HOME=/usr/java/path 
PATH=$JAVA_HOME/bin:$PATH 

java ... 
+0

Спасибо Я получил точку. Я добавил к строке сценария «запуск файла .jar и он работает», – Chris

1

Переменные окружения являются локальными для каждого процесса. Если вы хотите сделать постоянное изменение, вы можете следить за официальным java PATH instructions. Они рекомендуют добавить команду export variable в ваш .bashrc-файл.

В ~/.bashrc:

export JAVA_HOME=/usr/java/path 
export PATH=$JAVA_HOME/bin:$PATH