【问题标题】:Get systemEnvironment['HOSTNAME'] in Java在 Java 中获取 systemEnvironment['HOSTNAME']
【发布时间】:2020-03-11 11:28:30
【问题描述】:

在 CLI Linux 中我运行:

 echo $HOSTNAME

并接收:

 alex-HP-295-G1-SFF-Business-PC

我尝试在 java 中获取这个环境

 ExpressionParser parser = new SpelExpressionParser();
    Expression expression = parser.parseExpression("systemEnvironment['HOSTNAME']");
    String message = (String) expression.getValue();
    System.out.println(message);

但收到以下异常:

 SpelEvaluationException: EL1007E: Property or field 'systemEnvironment' cannot be found on null

我做错了什么?

【问题讨论】:

    标签: java intellij-idea environment-variables hostname spring-el


    【解决方案1】:

    严格返回$HOSTNAME env 属性,有这个解决方案有效:

    System.out.println(InetAddress.getLocalHost().getHostName());
    

    另外,还有另一种解决方法,但可能不是很理想。在运行 Java 类(或 Spring Boot 应用程序,或任何你拥有的)时,你可以将主机名作为 Java 属性传递。

    java -DHOSTNAME=$HOSTNAME YourMainClass
    

    然后,您可以将 Java 属性检索为:

    System.out.println(System.getProperty("HOSTNAME"));
    

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 2020-04-05
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多