System.getProperty为已定义的属性返回null

时间:2011-01-04 19:57:10

标签: java properties system

我有一个以bash

导出的属性TOOLS_DIR

我的java文件中有以下行:

String toolsDir = System.getProperty(“TOOLS_DIR”);

为什么返回null?是linux的兼容性问题还是什么?

3 个答案:

答案 0 :(得分:21)

环境变量和属性不是一回事。如果要将环境变量作为属性传入,则必须将以下内容添加到java调用中:

-DTOOLS_DIR = $ TOOLS_DIR

或者,您可以使用System.getEnv()。

答案 1 :(得分:6)

Java系统属性与shell环境变量无关。

您可以在调用虚拟机时分配java系统属性,例如:

java -DTOOLS_DIR=/somewhere org.example.MyClass

答案 2 :(得分:3)

请改为尝试:

String toolsDir = System.getenv("TOOLS_DIR");

getProperty(...)方法返回java vm属性(如user.dir,java.version)。 getenv(...)方法适用于环境变量。