我正在尝试使用 Java 7 ProcessBuilder 运行安装在我的系统上的可执行文件。我注意到环境变量 PATH,可通过
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。
最佳答案
直接来自 documentation :
您可以在不设置 PATH 变量的情况下正常运行 JDK,或者您可以选择设置它以方便使用。但是,如果您希望能够从任何目录运行可执行文件(javac、java、javadoc 等)而无需键入命令的完整路径,则应设置路径变量。如果不设置PATH变量,每次运行时都需要指定可执行文件的完整路径,如:
% /usr/local/jdk1.7.0/bin/javac MyClass.java
要查看路径是否设置正确,请执行:
% java -version
这将打印 java 工具的版本,如果它能找到的话。如果版本较旧或出现错误 java: Command not found,则路径设置不正确。
要永久设置路径,请在启动文件中设置路径。
对于 C shell (csh),编辑启动文件 (~/.cshrc):
set path=(/usr/local/jdk1.7.0/bin )
对于 bash,编辑启动文件 (~/.bashrc):
PATH=/usr/local/jdk1.7.0/bin:
export PATH
对于 ksh,启动文件由环境变量 ENV 命名。设置路径:
PATH=/usr/local/jdk1.7.0/bin:
export PATH
对于 sh,编辑配置文件 (~/.profile):
PATH=/usr/local/jdk1.7.0/bin:
export PATH
然后加载启动文件并通过重复java命令验证路径是否设置:
关于java - JVM如何设置PATH环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094498/