我有一个以bash
导出的属性TOOLS_DIR我的java文件中有以下行:
String toolsDir = System.getProperty(“TOOLS_DIR”);
为什么返回null?是linux的兼容性问题还是什么?
答案 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(...)方法适用于环境变量。