在Java中查找物理机器名称

rip*_*234 26 java

如何获取运行jvm的物理机器名?

(物理=操作系统,直到vmware ......)

从海报的评论中添加:
我的意思是运行JVM的计算机的名称.很可能是物理计算机,但如果JVM在另一个虚拟机内运行,则该名称很好.

jsi*_*ght 52

String computername=InetAddress.getLocalHost().getHostName();
System.out.println(computername);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这依赖于DNS并且可能会失败:http://stackoverflow.com/questions/7883542/getting-the-computer-name-in-java (5认同)
  • 问题的表述方式:“获取物理机器名称”,这*不是*正确答案。严格来说,上面会给你的是主机的**网络名称**,通常是本地主机接口的名称。请参阅 http://stackoverflow.com/a/40702767/1504556。Java 没有(标准化)方法来获取本地机器的“机器名称”或“计算机名称”。 (2认同)

Gan*_*alf 11

情侣选择,因为我不确定你想要什么:

RuntimeMXBean rmx = ManagementFactory.getRunTimeMXBean();
System.out.println(rmx.getName());
Run Code Online (Sandbox Code Playgroud)

要么...

System.out.println(InetAddress.getLocalHost().getHostName());
Run Code Online (Sandbox Code Playgroud)

或者在Linux上

Runtime r = Runtime.getRuntime();
Process p = r.exec("uname -a");
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream());
System.out.println(r.readLine());
Run Code Online (Sandbox Code Playgroud)


And*_*lay 10

在Windows上,如果需要工作站名称,可以使用:

System.getenv("COMPUTERNAME")
Run Code Online (Sandbox Code Playgroud)