【发布时间】:2011-01-07 02:28:08
【问题描述】:
如何使用 Java 预处理器来确定我正在编译的操作系统?
【问题讨论】:
-
呃,什么 Java 预处理器?
-
@James:spp,当然! ;-)
标签: java preprocessor system-properties
如何使用 Java 预处理器来确定我正在编译的操作系统?
【问题讨论】:
标签: java preprocessor system-properties
试试这个:
System.getProperty("os.name")
来自How do I programmatically determine operating system in Java?
顺便说一句,Java 没有预处理器……这是我发现的令人讨厌的事情之一。
【讨论】:
没有 Java 预处理器,也没有条件编译的能力。
内置了一个非常原始的调试功能,允许编译删除具有恒定条件的条件块,该条件为假以方便消除调试代码 - 但我不记得规范是否需要 em> 或允许从编译的类中删除代码。
static final boolean DEBUG=false;
...
if(Debugging.DEBUG) {
// some code which the compile may (or must?) eliminate
}
如果您想在运行时检测 O/S 并在不同平台上执行不同的操作,则每个 JVM 都需要许多系统属性,这些属性记录在 System.getProperties() 中。查看 JavaDoc,相对于它的安装或网络位置:
api/java/lang/System.html#getProperties()
【讨论】: