我正試圖在Windows和Linux中運行一個通用的Java程序。檢測Windows或Linux?
程序需要在每個平臺上做一些不同的事情。
那麼,我的Java程序如何檢測到它在Linux和Windows下運行?
我正試圖在Windows和Linux中運行一個通用的Java程序。檢測Windows或Linux?
程序需要在每個平臺上做一些不同的事情。
那麼,我的Java程序如何檢測到它在Linux和Windows下運行?
嘗試:
System.getProperty("os.name");
http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#getProperties%28%29
參見['os.arch'&'os.version'](http://pscode.org/prop/?prop=os.arch%2Cos.name%2Cos.version&format=TSV)(如果有問題) 。 –
apache commons lang有一類SystemUtils.java 你可以使用:
SystemUtils.IS_OS_LINUX
SystemUtils.IS_OS_WINDOWS
這很容易,並且可能經過測試! – visc
您可以使用 「system.properties.os」,例如:
public class GetOs {
public static void main (String[] args) {
String s =
"name: " + System.getProperty ("os.name");
s += ", version: " + System.getProperty ("os.version");
s += ", arch: " + System.getProperty ("os.arch");
System.out.println ("OS=" + s);
}
}
// EXAMPLE OUTPUT: OS=name: Windows 7, version: 6.1, arch: amd64
以下是詳細信息:
有用簡單的類都是由我在分叉: https://gist.github.com/kiuz/816e24aa787c2d102dd0
public class OSValidator {
private static String OS = System.getProperty("os.name").toLowerCase();
public static void main(String[] args) {
System.out.println(OS);
if (isWindows()) {
System.out.println("This is Windows");
} else if (isMac()) {
System.out.println("This is Mac");
} else if (isUnix()) {
System.out.println("This is Unix or Linux");
} else if (isSolaris()) {
System.out.println("This is Solaris");
} else {
System.out.println("Your OS is not support!!");
}
}
public static boolean isWindows() {
return (OS.indexOf("win") >= 0);
}
public static boolean isMac() {
return (OS.indexOf("mac") >= 0);
}
public static boolean isUnix() {
return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0);
}
public static boolean isSolaris() {
return (OS.indexOf("sunos") >= 0);
}
public static String getOS(){
if (isWindows()) {
return "win";
} else if (isMac()) {
return "osx";
} else if (isUnix()) {
return "uni";
} else if (isSolaris()) {
return "sol";
} else {
return "err";
}
}
}
我認爲這是使用Apache郎相關性的最佳方法決定通過Java以編程方式運行哪個OS
import org.apache.commons.lang3.SystemUtils;
public class App {
public static void main(String[] args) {
if(SystemUtils.IS_OS_WINDOWS_7)
System.out.println("It's a Windows 7 OS");
if(SystemUtils.IS_OS_WINDOWS_8)
System.out.println("It's a Windows 8 OS");
if(SystemUtils.IS_OS_LINUX)
System.out.println("It's a Linux OS");
if(SystemUtils.IS_OS_MAC)
System.out.println("It's a MAC OS");
}
}
if(File.separatorChar =='\\') windows = true; –
或者只是'SystemUtils.IS_OS_WINDOWS'。 – SantiBailors
*「程序需要在每個平臺上做一些不同的事情。」*具體是什麼? –