如何在Java中获得操作系统

5

我知道在SO上有这样一个问题,但我找不到它。所以再次提问...

我需要为我的程序设置属性,但我需要使其独立于操作系统 - 可在Windows XP和Linux(未知的发行版,未知的版本)上运行

更具体地说 - 我需要设置系统在哪里找到chromedriver二进制文件。我需要类似于以下伪代码:

 if (getOs() == Windows){
    System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver.exe");
   } else{
     System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver");
   }

现在我需要获取操作系统的部分。感谢您的帮助。

你是指这个吗?https://dev59.com/9kjSa4cB1Zd3GeqPJvDL - Nanne
是的!我瞎了,我瞎了,我瞎了... :) - Pavel Janicek
3个回答

23
System.getProperty("os.name");
System.getProperty("os.version");
System.getProperty("os.arch");

0

oslib是一个提供有关当前操作系统信息的库。您不需要解析从System.getProperty("os.name");获取的信息。

注意:大多数操作系统都经过测试和支持,但有些尚未实现。要获取完整列表,请查看它们的Github。

针对您特定问题的代码:

AbstractOperatingSystem os = OperatingSystem.getOperatingSystem();

if (os.getType == OperatingSystem.WINDOWS){
    System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver.exe");
} else if(os.getType == OperatingSystem.LINUX) {
    System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver");
} else {
    throw new Exception("Unsupported OS.");
}

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接