2011-01-07 6 views
1

Java 전 처리기를 사용하여 컴파일 할 OS를 결정하는 방법은 무엇입니까?Java Preprocessor Check OS

+12

어, 어떤 Java 전 처리기입니까? –

+0

@James : 물론 [spp] (http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/make/tools/src/build/tools/spp/Spp.java) 물론! ;-) –

답변

1

이 시도 :

System.getProperty("os.name") 

How do I programmatically determine operating system in Java?에서 BTW Java는 전처리 ... 내가 발견 짜증나는 것들 중 하나가 없습니다.

+1

시간을 컴파일하지 않고 * runtime *에서 OS를 반환합니다. –

+0

흠 ... 좋은 지적이야 ...하지만 당신이 컴파일러를 돌리고 있다면, 컴파일러가 운영되는 OS가 무엇인지 알 수있을 거라고 생각했다. – FeifanZ

1

Java 전처리 기와 조건부 컴파일 기능이 없습니다. 하지만 사양 또는 가 필요한 경우 내가 기억하지 않습니다 -이 컴파일이 디버그 코드의 제거를 용이하게하기 위해 거짓 일정한 조건과 조건 블록을 삭제하도록 허용함으로써 내장 된 매우 원시적 인 디버깅 기능입니다

코드를 컴파일 된 클래스에서 삭제할 수 있습니다. 당신은 런타임에 O/S 감지 할 다른 플랫폼에서 다른 일을하는 경우

static final boolean DEBUG=false; 


... 


if(Debugging.DEBUG) { 
    // some code which the compile may (or must?) eliminate 
    } 

System.getProperties()에서 설명하는 모든 JVM에 필요한 시스템 등록 정보가 있습니다. JavaDoc이 설치된 위치 또는 네트워크 위치를 확인하십시오.

api/java/lang/System.html#getProperties()