1

如何使用 Java 预处理器来确定我正在编译的操作系统?

4

2 回答 2

1

尝试这个:

System.getProperty("os.name")

来自如何以编程方式确定 Java 中的操作系统?

顺便说一句,Java 没有预处理器……这是我发现的令人讨厌的事情之一。

于 2011-01-07T02:31:25.190 回答
1

没有 Java 预处理器,也没有条件编译的能力。

内置了一个非常原始的调试功能,允许编译删除具有恒定条件的条件块,该条件为假以方便消除调试代码 - 但我不记得规范是否要求允许删除代码编译的类。

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()
于 2011-01-07T02:46:52.177 回答