【问题标题】:How to set the PATH environment variable for JVM如何为 JVM 设置 PATH 环境变量
【发布时间】:2014-02-01 09:19:08
【问题描述】:

我正在尝试使用 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。

【问题讨论】:

  • 我宁愿不要将它们放入您的 PATH 或从您的程序设置 PATH 以仅通过它们的绝对路径执行程序。

标签: java maven path jvm java-7


【解决方案1】:

您可以将 shell 的 $PATH 作为命令行参数传递:

$ java -DPATH=$PATH -cp …

您可以使用此example 来检查您的环境。

【讨论】:

    【解决方案2】:

    直接来自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命令验证路径是否设置:

    【讨论】:

    • 这就是我尝试过的。 AFAIK OS X 使用 .bash_profile 作为环境变量,但我也尝试了 .bashrc 和 .profile,但无济于事。我希望我的每个同事都使用他们现有的 PATH 设置,但这可能是不可能的。目前,我已经在我的 IDE 中配置了 PATH 变量,并会建议我的同事也这样做。
    • 是的,它可以是任何 Bash 启动文件——~/.bashrc、~/.bash_profile、~/.profile。在 IDE 中设置它可能是最快的方法,但除非你提供绝对路径,否则它不会在 IDE 中工作。出于同样的原因,建议在 bash 启动文件中设置这些变量。
    • 如果您觉得我的回答有帮助,请不要忘记投票或接受。
    • 在 bash 启动文件中设置 PATH 是不可能的,我们已经这样做了。我注意到另一件事:在运行配置中设置路径后,我必须重新启动 IntelliJ IDEA 12 - 很奇怪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2011-11-26
    • 2017-03-30
    • 2016-11-29
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多