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

2022-09-03 17:26:16

我有一个在 bash 中导出的属性TOOLS_DIR

我的java文件中有以下行:

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

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


答案 1

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

-DTOOLS_DIR=$TOOLS_DIR

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


答案 2

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

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

java -DTOOLS_DIR=/somewhere org.example.MyClass