我需要我的代码在使用IntelliJ运行测试时可以获取环境变量:
private String sdkDir = System.getProperty("sdk.root");
问题是,这始终是
null
,我在bashrc
和bash_profile
中都进行了设置,但实际上不适用于Ubuntu。bashrc
和bash_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 = ....的地方