Java解决方案(框架/库/API)用于实现真正的跨平台应用程序/应用。

4
我不确定,但似乎有几个针对不同平台的Java解决方案(Java SE、ME……),因此您必须为所有设备(iOS、Android、Windows、Linux……)编写相同应用程序的不同版本。
(在运行Android和iOS的设备上使用Java ME甚至可能吗?)
是否有适用于Java的解决方案,可以创建只需一个应用程序即可无缝运行在所有设备上?或者我们必须为不同的设备重新编写应用程序?

为什么要标记IOS?因为你无法在其上运行Java应用程序。 - Perception
当然可以,您可以访问http://www.zdnet.com/oracle-puts-java-apps-on-ipads-and-iphones-7000006209/。 - user753676
ADF数据表格令人困惑?我能从中得出的最大结论是,可能他们在他们的框架内嵌入了JVM(值得怀疑)?你不能在通过应用商店销售的应用程序中包含任何此类框架,因为这违反了苹果的TOS。对我来说更像是一个受PhoneGap启发的框架,将Java转换为本地代码。 - Perception
不打算通过应用商店销售。客户直接从我们这里获取应用程序。看起来它们包含了一个“轻量级”JVM,是否有使用ADF的经验? - user753676
3个回答

2

我知道只有一种解决方案可以在Android/iOS上使用Java - Codename One。不幸的是,我还没有在实践中尝试过它,但我已经读了几篇文章并对它留下了非常好的印象。


1

我认为,跨平台应用的未来是基于HTML5、CSS3和Javascript。Java(或DART)可以作为高级语言生成Javascript。

我建议您看一下phonegapmobilegwt用于移动设备,以及Adobe Air用于桌面应用。

您可以使用mobilegwt在Java中编写移动/桌面应用程序。然后,将应用程序交叉编译为不同的浏览器(iPhone、iPad、Android、BlackBerry、桌面),并将javascript+html+css+images打包到所有平台的本地应用程序中。

您的应用程序可以从Web服务器运行(下载HTML和所有内容),也可以是完全从设备上运行的Javascript应用程序;或者是两者的混合体:将Javascript应用程序部署到本地应用程序中,并从设备上运行,通过AJAX调用服务器。

这些应用程序通常被称为混合应用程序

最终,您可以跳过Java部分,开发一个HTML5+CSS3应用程序,并使用PhoneGap打包到不同的平台。但我发现MobileGWT能够生成外观和感觉像本地应用程序(具有非常好的实现“外观和感觉”和动画效果)。而且GWT有助于将Java语言的可扩展性(可重用组件、工具和面向对象)带到JavaScript中。

对于桌面,您可以使用Adobe Air打包HTML5应用程序。

对于视频游戏,我认为PlayN值得一些关注,它能够为桌面Java、HTML5浏览器、Android、iOS、Flash(等等)交叉编译游戏,并产生令人印象深刻的结果,如Chrome版愤怒的小鸟(从Java交叉编译到JavaScript)。


我一点也不喜欢Adobe,也不喜欢Adobe Air。我认为我们将继续使用普通的JavaSE为桌面客户端构建主应用程序,并使用PhoneGap为移动设备构建第二个定制版本,其中包含较少的功能。 - user753676
使用PhoneGap可以创建本地插件(或“驱动程序”),以将本地API公开供JavaScript使用。因此,它并不真正限制您,如果特定设备的某些功能尚不可用,则需要实现一些“驱动程序”来使用它们。 - Luigi R. Viggiano

0

Java代码被编译为字节码,保证跨平台,即可在任何JVM上执行。

不同的环境可以提供不同的平台相关API并需要额外的要求。例如,Java EE提供容器服务并要求编写容器管理组件(EJB、Servlet等)。但代码本身仍然是跨平台的。

尽管J2ME已经消亡,但它规定了编写MIDlets。它确实很特殊:它不提供常规的JDK,因此让我们避免讨论它。

iOS在“大型”Mac电脑上运行可以运行常规的Java。与在Windows或Linux上运行的相同的Java一样。因此,代码仍然是跨平台的。


这是我们已经知道的,但是iPhone、iPad、Android平板电脑呢? - user753676
iPhone、iPad 和 Android 平板电脑并不真正运行普通的 Java 程序。 - MTilsted
@AlexR - 你不能在iOS设备上运行Java(除非它已经被解锁并安装了Java)。 - Perception
Oracle的ADF和他们的“lite” JVM让我感到困惑。 - user753676

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接