【问题标题】:System.getProperty returns null for defined propertySystem.getProperty 为定义的属性返回 null
【发布时间】:2011-06-03 14:59:27
【问题描述】:

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

我的 java 文件中有以下行:

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

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

【问题讨论】:

    标签: java properties system


    【解决方案1】:

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

    -DTOOLS_DIR=$TOOLS_DIR
    

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

    【讨论】:

      【解决方案2】:

      试试这个:

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

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

      【讨论】:

        【解决方案3】:

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

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

        java -DTOOLS_DIR=/somewhere org.example.MyClass
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-03
          • 1970-01-01
          • 2021-07-27
          • 2017-01-11
          • 2013-07-14
          • 1970-01-01
          • 2012-04-29
          • 1970-01-01
          相关资源
          最近更新 更多