以下哪项是获取Java当前计算机主机名的最佳和最便携方式?
Runtime.getRuntime().exec("hostname")
VS
InetAddress.getLocalHost().getHostName()
是否可以获取当前登录用户的名称(Windows/Unix)和机器的主机名?
我假设它只是某些静态环境类的属性.
我找到了这个用户名
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
Run Code Online (Sandbox Code Playgroud)
这对于机器名称:
import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
Run Code Online (Sandbox Code Playgroud)
是第一个仅适用于Windows?
如果你没有设置主机名,那么第二个会做什么?
如何获取运行jvm的物理机器名?
(物理=操作系统,直到vmware ......)
从海报的评论中添加:
我的意思是运行JVM的计算机的名称.很可能是物理计算机,但如果JVM在另一个虚拟机内运行,则该名称很好.