我的项目需要 Java 1.6 来编译和运行。现在我需要让它与 Java 1.5 一起工作(从营销方面)。我想替换方法主体(返回类型和参数保持不变)以使其与 Java 1.5 一起编译而不会出错。
详细信息:我有一个名为的实用程序类OS
,它封装了所有特定于操作系统的东西。它有一个方法
public static void openFile(java.io.File file) throws java.io.IOException {
// open the file using java.awt.Desktop
...
}
双击打开文件(start
Windows 命令或open
Mac OS X 命令等效)。由于它不能用 Java 1.5 编译,我想在编译期间排除它,并用另一种调用run32dll
Windows 或open
Mac OS X 的方法替换它,使用Runtime.exec
.
问题:我该怎么做?注释可以在这里提供帮助吗?
注意:我使用 ant,我可以制作两个 java 文件OS4J5.java
,OS4J6.java
其中将包含OS
具有 Java 1.5 和 1.6 所需代码的类,并在编译之前将其中一个复制到(或一种丑陋的方式 -根据 java 有条件OS.java
地替换内容OS.java
版本)但我不想这样做,如果有另一种方式。
详细说明:在 CI 中可以使用ifdef, ifndef
,在 Python 中没有编译,我可以使用hasattr
或其他东西检查功能,在 Common Lisp 中我可以使用#+feature
. Java有类似的东西吗?
找到了这篇文章,但似乎没有帮助。
任何帮助是极大的赞赏。kh。