5

我希望实现如下所示的东西:

if(isJavaVirtualMachine()){
    System.out.println("You are running on a JVM");
}else if(isDalvikVirtualMachine()){
    Log.i("env","You are running on an android.");
}

可能吗?如果 Java 本身不可能,我可以通过 JNI 来做吗?

4

2 回答 2

10

使用System.getProperty. Dalvik 的属性名称记录在这里

于 2013-03-11T19:21:28.863 回答
2

正如 ykaganovich 指出的那样,在运行时区分纯 Java 和 Android 应该很容易。另一个问题是在普通的 Java 环境中不会有像Log这样的 Android 特定类,所以你会在运行时遇到问题!一种可能的解决方案是使用反射来组装特定于平台的适配器,因此您仅在运行时引入依赖项(可能有点棘手)。

于 2013-03-11T20:10:23.130 回答