在python脚本中更改$ JAVA_HOME

时间:2014-10-02 19:48:56

标签: java python

我试图让python脚本在32位和64位java之间切换,但出于某种原因

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

什么都不做,但手动工作。我怎样才能解决这个问题? (顺便说一句,这是在Linux系统上运行的。)

2 个答案:

答案 0 :(得分:1)

环境变量是每个进程的本地变量。如果您想进行永久性更改,那么您可以按照官方java PATH instructions进行操作。他们建议将导出变量命令添加到.bashrc文件中。

在〜/ .bashrc中:

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

答案 1 :(得分:1)

export行将为执行它的shell及其所有子shell设置一个环境变量。但是,这里发生的是Python创建一个新的shell,执行该行来设置环境变量,然后shell终止。这意味着环境变量不再有效。事实上,您在第一行中设置的JAVA_HOME环境变量在执行时对第二行甚至不会有效,因为它自己的shell中也会立即终止!<\ n / p>

绕过它的方法是运行一个设置环境变量的整个shell脚本然后启动Java:

#!/bin/bash

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

java ...