【发布时间】:2016-06-10 11:26:56
【问题描述】:
我的意思是:我编写了一个非常精细的 Java 代码,它是针对 Android 设备的。因此,它包含了几个仅在 Android 中可用的定义(例如使用 TTS-STT 引擎)。但是,大部分代码也可以轻松地在桌面上运行。
现在,为此,我必须删除与 Android 相关的方法并将其编译为桌面。但是,由于我经常更新 Android 的原始代码,所以在桌面上继续进行相同的编辑有点累。
有没有一种方法可以告诉程序只有在运行的操作系统是 Android 时才担心代码的某个部分?或 OSX、Windows 等。这样无论操作系统如何,它都能无错误地编译,然后有选择地运行某些方法?
非常感谢,祝你有美好的一天
【问题讨论】:
-
根据操作系统有选择地运行,检查系统属性,例如尝试
System.out.println(System.getProperty("os.name"));docs.oracle.com/javase/tutorial/essential/environment/… -
@Arjan 这并不能解决 OP 的问题 - 如果他引用 android 本机方法,代码仍然无法在桌面上编译。据我了解,他希望能够编译和使用单个代码库,而不管他运行的操作系统是什么。
-
@nhouser9 确实没有解决任何编译问题。
-
一种解决方案是拆分代码,一个包含大部分内容的库,一个 Android 项目和一个使用该库的桌面项目。
-
@Arjan 谢谢,这听起来是个好主意。我只是想在 Java 中可能会有一些东西,比如 C++ 中的“#ifdef APPLE”。