我希望实现这样的东西:
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进行吗?
答案 0 :(得分:10)
使用System.getProperty
。 Dalvik的属性名称记录为here
答案 1 :(得分:2)
正如ykaganovich指出的那样,在运行时区分普通Java和Android应该很容易。 另一个问题是在普通的Java环境中你不会有像 Log 这样的Android特定类,所以你会在运行时遇到问题! 一种可能的解决方案是使用反射来组装特定于平台的适配器,因此您只能在运行时引入依赖关系(可能有些棘手)。