Java无法获取环境变量(系统属性)

xyb*_*rek 2 java bash ubuntu intellij-idea

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

private String sdkDir = System.getProperty("sdk.root");
Run Code Online (Sandbox Code Playgroud)

问题是,这总是这样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
Run Code Online (Sandbox Code Playgroud)

我的配置可能缺少什么?

更新:

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

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

将该“sdk.root”放在哪里以便 IntelliJ 拾取它?在属性文件或 bash 中?

lau*_*une 5

你必须使用

String val = System.getenv( "PATH" );
Run Code Online (Sandbox Code Playgroud)

为环境变量的值。属性值与进程的环境无关。

String val = System.getProperty( "sdk.root");
Run Code Online (Sandbox Code Playgroud)

是针对属性的。

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