我不知道,但似乎有几种针对不同平台的 Java 解决方案(Java SE、ME ...),因此您必须为所有设备(iOS、Android、Windows、Linux ...)编写同一应用程序的不同版本.
(甚至可以在运行 Android 和 iOS 的设备上使用 Java ME 吗?)
Java 是否有一种解决方案可以只创建一个在所有设备上无缝运行的应用程序?还是我们必须为不同的设备重写应用程序?
我不知道,但似乎有几种针对不同平台的 Java 解决方案(Java SE、ME ...),因此您必须为所有设备(iOS、Android、Windows、Linux ...)编写同一应用程序的不同版本.
(甚至可以在运行 Android 和 iOS 的设备上使用 Java ME 吗?)
Java 是否有一种解决方案可以只创建一个在所有设备上无缝运行的应用程序?还是我们必须为不同的设备重写应用程序?
我只知道一种允许在 Android/iOs 上使用 Java 的解决方案 - codenameone。不幸的是我还没有在实践中尝试过,但是我已经阅读了几篇文章并且对它有很好的印象。
我想,跨便携应用程序的未来是 HTM5、CSS3 和 Javascript。Java(或DART)可用作生成 Javascript 的高级语言。
我建议你看一下手机的phonegap和mobilegwt,以及桌面的Adobe Air。
您可以使用 mobilegwt 在 Java 中编写移动/桌面应用程序。然后,您为不同的浏览器(iphone、ipad、android、黑莓、桌面)交叉编译应用程序,并将 javascript+html+css+images 打包到适用于所有平台的本机应用程序中。
您的应用程序可以从 Web 服务器运行(下载 html 和所有内容),或者是完全从设备运行的 javascript 应用程序;或者是两件事的混合体:一个 javascript 应用程序部署到本机应用程序并从设备运行,对服务器进行 AJAX 调用。
这些应用程序通常称为混合应用程序。
最终,您可以跳过 java 部分并开发一个 html5+css3 应用程序并使用 phonegap 为不同平台打包。但我发现 mobilegwt 能够生成看起来像原生应用程序的混合应用程序(“外观和感觉”和动画实现得非常好)。GWT 有助于将 Java 语言(可重用组件、工具和 OO)的可伸缩性引入 Javascript。
对于桌面,您可以使用Adobe Air打包一个 html5 应用程序。
对于视频游戏,我认为playn值得关注,它能够交叉编译桌面 Java、HTML5 浏览器、Android、iOS、Flash(以及更多)的游戏,并产生令人印象深刻的结果,例如Chrome 的愤怒的小鸟(从 Java 交叉编译到 Javascript) .
Java 代码被编译成字节码,保证跨平台,即可以在任何JVM 上执行。
不同的环境可以提供不同的平台相关 API,并且需要额外的要求。例如,Java EE 提供容器服务,需要编写容器管理的组件(EJB、Servlet 等)。但是代码本身仍然是跨平台的。
尽管 J2ME 死了,但它要求编写 MIDlet。它确实很特别:它不提供常规的 JDK,所以我们避免讨论它。
在“大型”Mac 计算机上运行的 iOS 可以运行常规 java。在 Windows 或 linux 上运行的相同 java。因此,代码仍然是跨平台的。