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

Der*_*rek 11 java properties system

我有一个以bash导出的属性TOOLS_DIR

我的java文件中有以下行:

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

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

Kon*_*hik 21

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

-DTOOLS_DIR = $ TOOLS_DIR

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


Dav*_*ski 6

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

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

java -DTOOLS_DIR=/somewhere org.example.MyClass
Run Code Online (Sandbox Code Playgroud)


rob*_*x44 5

试试这个:

String toolsDir = System.getenv("TOOLS_DIR");
Run Code Online (Sandbox Code Playgroud)

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