我需要我的代码在使用IntelliJ运行测试时可以获取环境变量:

private String sdkDir = System.getProperty("sdk.root");


问题是,这始终是null,我在bashrcbash_profile中都进行了设置,但实际上不适用于Ubuntu。

bashrcbash_profile都具有以下内容:

export JAVA_HOME=/home/xybrek/zulu1.8.0_25-8.4.0.1-x86lx64
export JAVA_OPTIONS="-Dsdk.root=/home/xybrek/java-sdk-1.9.17"
export PATH=$PATH:/home/xybrek/zulu1.8.0_25-8.4.0.1-x86lx64/bin
export PATH


我的配置可能缺少什么?

更新:

我无法更改Java代码:System.getProperty("sdk.root");,因为它来自无法修改的已编译Arquillian容器。

我需要的是使用此System.getProperty方法获取值的正确方法。

哪里将这个“ sdk.root”供IntelliJ接收?在属性文件还是bash中?

最佳答案

你必须用

String val = System.getenv( "PATH" );


用于环境变量的值。属性值与流程的环境无关。

String val = System.getProperty( "sdk.root");


用于属性。

应该有一种在对话框中设置命令行参数的方法,以准备在IDE中执行Java程序。这是您应该定义-Dsdk.root = ....的地方

10-07 19:07
查看更多