반응형
Windows 또는 Linux를 검출하고 있습니까?
Windows와 Linux에서 공통 Java 프로그램을 실행하려고 합니다.
이 프로그램은 플랫폼별로 몇 가지 작업을 다르게 수행해야 합니다.
그럼 Java 프로그램이 Linux에서 실행 중인 것을 검출하는 방법과윈도?
apache commons lang에는 SystemUtils.java 클래스가 있습니다.이 클래스는 다음과 같습니다.
SystemUtils.IS_OS_LINUX
SystemUtils.IS_OS_WINDOWS
시험:
System.getProperty("os.name");
http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#getProperties%28%29
이 유용한 단순 클래스를 사용할 수 있습니다.
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 MacOS");
} 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 supported!!");
}
}
public static boolean isWindows() {
return OS.contains("win");
}
public static boolean isMac() {
return OS.contains("mac");
}
public static boolean isUnix() {
return (OS.contains("nix") || OS.contains("nux") || OS.contains("aix"));
}
public static boolean isSolaris() {
return OS.contains("sunos");
}
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 lang 의존성을 사용하여 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");
}
}
system을 사용할 수 있습니다.예를 들어 다음과 같습니다.
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
자세한 내용은 다음과 같습니다.
언급URL : https://stackoverflow.com/questions/14288185/detecting-windows-or-linux
반응형
'programing' 카테고리의 다른 글
함수 인수로 단일 파이프 '|'를 사용하는 기능 (0) | 2022.10.11 |
---|---|
MySQL While Loop을 통해 테이블을 증분값으로 채웁니다(Auto-Increment는 옵션 없음). (0) | 2022.10.11 |
아나콘다 업데이트 방법 (0) | 2022.10.02 |
데이터 없는 MySql 내보내기 스키마 (0) | 2022.10.02 |
Js가 현재 달의 첫 번째와 마지막 날을 얻는 순간 (0) | 2022.10.02 |