将环境变量作为参数

时间:2012-01-05 09:53:29

标签: java windows environment-variables

我有一个从命令行获取参数的jar文件,我想提供包含环境变量的参数。如下所示:

java -jar MyDev.jar -f %PROJECT_HOME%/src/test

但是在上面的案例程序中创建了一个名为%PROJECT_HOME%的目录,但我希望系统中的PROJECT_HOME值为/home/jack路径。并且计划应遵循/home/jack/src/test而不是%PROJECT_HOME%/src/test路径。

我该怎么做?

3 个答案:

答案 0 :(得分:4)

你是在Unix shell中运行吗?如果是这样,我怀疑你只是想:

java -jar MyDev.jar -f ${PROJECT_HOME}/src/test

使用%是指定环境变量的Windows方式 - 它似乎不适合/home/jack的主目录......

答案 1 :(得分:2)

负责环境变量替换的组件是shell /命令行处理器(Windows上为cmd.exe)。

我写了以下main方法:

public static void main(String[] args) {
    System.out.println(args[0]);
}

当我传递“%PATH%”作为参数时,从Eclipse中运行它会打印出%PATH%。从命令行运行它会打印出实际的路径环境变量。

请注意,您可以使用System.getenv()从Java代码访问环境变量。 例如,System.out.println(System.getenv("PATH"))打印出来自Eclipse和命令行的实际路径变量。

答案 2 :(得分:0)

一个非常可能的原因可能是变量PROJECT_HOME未定义或具有拼写错误的名称。因此,除非您已经这样做,否则应该在启动java程序之前执行echo %PROJECT_HOME%以确保定义变量。