簡體   English   中英

Java如何獲取操作系統

[英]How to get operating system in Java

我知道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");
   }

現在我需要獲取操作系統的部分。 感謝幫助。

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

你可以使用我寫的實用程序 class,你只需要在你的項目中復制以下 class

https://github.com/aurbroszniowski/os-platform-finder/blob/master/src/main/java/org/jsoftbiz/utils/OS.java

然后做:

import org.jsoftbiz.utils.OS;

    OS myOS = OS.getOs();

    myOS.getPlatformName()

    myOS.getName()
    myOS.getVersion()
    myOS.getArch()

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.");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM