Oma*_*eji 149 java environment
是否可以获取当前登录用户的名称(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?
如果你没有设置主机名,那么第二个会做什么?
小智 247
要获取当前登录的用户:
System.getProperty("user.name"); //platform independent
Run Code Online (Sandbox Code Playgroud)
和机器的主机名:
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
Run Code Online (Sandbox Code Playgroud)
Bil*_*ard 85
要获取当前登录的用户:
System.getProperty("user.name");
Run Code Online (Sandbox Code Playgroud)
要获取机器的主机名:
InetAddress.getLocalHost().getHostName();
Run Code Online (Sandbox Code Playgroud)
为了回答问题的最后部分,Java API说getHostName()将返回
此IP地址的主机名,或者如果安全检查不允许该操作,则为IP地址的文本表示形式.
小智 9
使用user.name不安全,因为环境变量可能是伪造的.您使用的方法很好,基于unix的操作系统也有类似的方法
| 归档时间: |
|
| 查看次数: |
172091 次 |
| 最近记录: |