Получить systemEnvironment ['HOSTNAME'] в Java - PullRequest
0 голосов
/ 11 марта 2020

В 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

Что я делаю не так?

1 Ответ

0 голосов
/ 11 марта 2020

Строго говоря, для возврата свойства $HOSTNAME env есть решение, которое работает:

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

В качестве альтернативы, есть другой обходной путь, но, вероятно, не очень идеальный. Вы можете передать имя хоста как свойство Java при запуске класса Java (или приложения Spring Boot, или чего-либо еще).

java -DHOSTNAME=$HOSTNAME YourMainClass

Затем вы можете получить свойство Java как :

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