通过Java获取操作系统详细信息

huangapple go评论162阅读模式
英文:

How to get OS details using java

问题

我知道我们可以使用System.getProperty("os.name");来获取操作系统名称。但由于某种原因,有人设置了一个名为JAVA_TOOL_OPTIONS="-Dos.name=Windows 7"的环境变量,这导致无法获取原始的操作系统名称,而总是得到操作系统名称为Windows 7。

我们是否有任何方法可以获取原始的操作系统详细信息?

英文:

I know we can use System.getProperty("os.name"); to get the os name. But due to some reason someone has set an environment variable called JAVA_TOOL_OPTIONS="-Dos.name=Windows 7" which is causing not to get the original OS name instead its always getting the OS name as Window 7.

Do we have any way where we can get the original OS details?

答案1

得分: 1

你可以使用Apache Commons Lang,类名是SystemUtils。你可以使用以下代码。

String osName = SystemUtils.OS_NAME;
System.out.println("操作系统名称:" + osName);

你需要将Apache Commons Lang添加到类路径中。

如果以上方法都不起作用,那么你需要逐个执行针对特定操作系统的命令,直到获得正确的结果。但这不是正确的方法,只是一种权宜之计。

对于Windows,执行ver命令。

对于Linux,执行cat /etc/*-release或者lsb_release -a命令。

英文:

You can use Apache Commons Lang, class name is SystemUtils. You can use the below code.

String osName = SystemUtils.OS_NAME;
System.out.println("OS NAME: " + osName);

You have to add the Apache Commons Lang in the classpath.

If nothing works then you have to execute the commands specific to OS one by one until you get the correct result. But this is not the correct approach, it is just a work around.

For Windows, execute ver

For Linux, execute cat /etc/*-release or lsb_release -a

huangapple
  • 本文由 发表于 2020年4月6日 14:02:34
  • 转载请务必保留本文链接:https://go.coder-hub.com/61053780.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定