【问题标题】:Java Preprocessor Check OSJava 预处理器检查操作系统
【发布时间】:2011-01-07 02:28:08
【问题描述】:

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

【问题讨论】:

  • 呃,什么 Java 预处理器?
  • @James:spp,当然! ;-)

标签: java preprocessor system-properties


【解决方案1】:

试试这个:

System.getProperty("os.name")

来自How do I programmatically determine operating system in Java?

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

【讨论】:

  • 这将在运行时返回操作系统,而不是编译时。
  • 嗯...好点...但我想我在想如果您正在运行编译器,那么您很可能会知道编译器正在运行什么操作系统...
【解决方案2】:

没有 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()

【讨论】:

    猜你喜欢
    • 2013-09-25
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2021-09-22
    • 2016-03-22
    相关资源
    最近更新 更多