Java 预处理器检查操作系统
如何使用 Java 预处理器来确定我正在哪个操作系统上进行编译?
How do I use Java preprocessors to determine what OS I am compiling on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何使用 Java 预处理器来确定我正在哪个操作系统上进行编译?
How do I use Java preprocessors to determine what OS I am compiling on?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
试试这个:
来自 如何以编程方式确定 Java 中的操作系统?
顺便说一句,Java 没有预处理器……这是我发现的一件烦人的事情。
Try this:
From How do I programmatically determine operating system in Java?
BTW Java doesn't have a preprocessor...one of the annoying things I discovered.
没有 Java 预处理器,也没有条件编译的能力。
内置了一个非常原始的调试功能,允许编译器删除具有常量条件的条件块,该条件为假,以方便消除调试代码 - 但我不记得规范是否需要或允许从已编译的类中删除代码。
如果您想在运行时检测操作系统并在不同平台上执行不同的操作,则每个 JVM 都需要许多系统属性,这些属性记录在
System.getProperties()
中。请参阅 JavaDoc,相对于其安装位置或网络位置:There is no Java preprocessor and no ability to conditionally compile.
There is a very primitive debugging feature built in whereby the compile is allowed to delete conditional blocks with a constant condition which is false to facilitate elimination of debug code - but I don't recall if the spec requires or allows the code to be deleted from the compiled class.
If you want to detect the O/S at runtime and do different things on different platforms, there are a number of system properties required in every JVM which are documented in
System.getProperties()
. See the JavaDoc, relative it's installed or network location: