Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java无法获取环境变量(系统属性)_Java_Bash_Ubuntu_Intellij Idea - Fatal编程技术网

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

Java无法获取环境变量(系统属性),java,bash,ubuntu,intellij-idea,Java,Bash,Ubuntu,Intellij Idea,我需要我的代码在使用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="-

我需要我的代码在使用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
方法来获取值的正确方法

IntelliJ将这个“sdk.root”放在哪里取?在属性文件或bash?

中,必须使用

String val = System.getenv( "PATH" );
用于环境变量的值。属性值与进程的环境无关

String val = System.getProperty( "sdk.root");
是指物业


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

为什么不定义System.getProperty?检查IDE的功能。在Eclipse中,run对话框有一个选项卡用于定义环境,另一个选项卡用于命令行选项,您可以在其中放置-Dsdk.root=。。。字面上只有当某个代理在调用java(JVM)的命令行中对环境变量进行扩展时,环境变量才会起作用?看起来您需要在命令行调用中显式地包含
$JAVA_OPTIONS
——JAVA进程不会自动读取该环境变量。我只是右键单击然后运行测试。与典型的手动JUnit测试类似,必须有一种方法可以直接在IntelliJ对话框中设置命令行选项,以便运行特定的Java应用程序。与环境变量无关。请签出:,这是您需要放置
-Dsdk.root=something
@eis的地方,谢谢您的帮助