不确定我是否可以在这里或在 Stack Overflow 上询问这个问题...
普通 Java(计算机级 Java)可以在 Android 手机上运行吗?或者说这两个 Java 版本完全不同?
我所说的计算机级 Java 指的是来自 Eclipse 和 Netbeans 的项目(带有项目文件夹和构建文件)
答案1
运行 Android 等操作系统的典型手机都有自己的 JVM(Java 虚拟机)。JVM 负责处理所谓的“字节码”。你可以将 JVM 想象成一个能够处理字节码的虚拟处理器。它比这更复杂,但我不会对此进行过多的详细介绍。
因此,实际上,您拥有针对不同 CPU 架构的多个 JVM(例如,针对手机的 ARM 和针对台式机的 x86)。这些 JVM 可以处理字节码,并以这种方式跨设备提供一致的体验。但是,如果您的应用程序所依赖的库需要本机系统特定的 API,它将无法工作。因此,如果您使用 Swing 或 SWT 编写常规的旧 Java 应用程序,它将无法在 Android 上运行,因为 Android 不提供这些 API(据我所知)来利用。此外,Android 对其应用程序的工作方式有非常具体的设置,并且 Android 提供了自己的 JVM 实现。它与 Oracle 非常不同。
因此,如果您只是用 Java 编写一些代码,比如命令行应用程序或简单的 UI 应用程序,那么您将无法像在 PC 上那样在 Android 上运行它。