我们能在iPhone上运行Java应用程序吗?

15

这是这些问题的副本:https://dev59.com/EEbRa4cB1Zd3GeqP3sqS,https://dev59.com/kEXRa4cB1Zd3GeqPs5bh - Brad Larson
9个回答

12

目前,在iPhone上没有JVM运行。这意味着,你开发iPhone应用程序的唯一方式是拥有一个编译器,将你的Java代码编译为Objective-C代码。

有几种解决方案可以做到这一点:

Codename One - 专注于使用视觉工具和模拟器使用Java构建应用程序。是一个开源项目,带有SaaS后端,无需Mac。

XMLVM - 是一个转换器,将Java字节码转换为C/Objective-C。是一个开源项目,但目前需要编写iOS特定的代码。

还有几个专有解决方案,但我没有使用过它们。例如,Software AG有一个名为Web Objects的工具。


谢谢 @gizmo, 请看第三个链接。 没有编译器! - SocialCircus
2
第三个链接是关于开发iPhone Web应用程序的。也就是说,通过MobileSafari访问的网站。 - sarnesjo
可能有点跑题,但我忍不住要加上这句话:我想知道如果安卓越来越流行,苹果会在两三年内发生什么... - Ta Sas
1
@TaSas 现在四年过去了,苹果仍然强劲,而安卓则严重分裂。 - Thorbjørn Ravn Andersen
正如您所知,许多Java应用程序并不是纯粹的Java应用程序(它们可以作为jar或控制台应用程序、war或ear等运行),许多较大的应用程序可能会结合许多其他外部库或框架,如Spring Boot或jQuery UI框架,例如jqWidgets、EasyUI,然后可能会有加密、密码学和文件上传流。假设PC/笔记本电脑在下载JDK和其他依赖项后可以运行这样的Java Web应用程序,那么Android或iOS手机能否在其默认浏览器上运行它呢? - Ezani

11

Sun发现他们可以将Java移植到iPhone上,但SDK许可证禁止此操作。所以这不是技术问题,而是政治问题。


1
请附上引用以验证您的陈述。 - Iter Ator
6
@IterAtor 九年后你突然发了一条评论?当然——https://www.infoworld.com/article/2651070/application-development/sun-s-plan-for-java-on-iphone-could-hit-roadblock.html - Thorbjørn Ravn Andersen
为什么苹果“讨厌”Java?如果他们允许在设备上使用Java,这对他们的销售不是有利的吗? - Ezani
@Ezani 这个答案已经超过十年了。那时候,据我所记,苹果非常严格,不允许应用程序包含解释性代码,只能编译。可能与在“应用商店上是否可以发布”时对二进制文件进行静态分析有关。今天情况大不相同。 - Thorbjørn Ravn Andersen
@ThorbjørnRavnAndersen 谢谢您的回答!是的,我已经阅读了相关资料并理解了!祝您一切顺利,再次感谢您!!! - Ezani

0
一个有趣的方法是将Google Web Toolkit与Appcelerator Titanium结合起来,使用Java开发iPhone应用程序。
Google Web Toolkit(GWT)允许将Java代码编译为Javascript,而Titanium允许使用Javascript创建本地外观的iPhone应用程序。我已经开始了一个名为“gwt-titanium”的项目,将两者结合起来,您可以在iPhoneJava.org的博客上找到有关该项目和构建说明的解释。
祝你好运!

0

有几种方法可以使用Java编写iPhone应用程序,通过使用XMLVM转换器转换为Objective C,但是这很困难,但这是适合和兼容的方式来完成您的应用程序,您需要学习XML语言。


0

我会说:不

如果你想要创建“真正”的本地化iPhone应用程序,你必须选择Objective C和iPhone SDK。

还有其他方法,如http://phonegap.com/,但我个人没有使用过这个项目。


1
谢谢你,Thomas。因为你将它扩展到了Web开发领域,我现在已经通过使用JS在iPhone上进行Web开发获得了经验。 - SocialCircus

0

有一个名为“Classpath”的Java虚拟机实现,但缺点是您只能使用Cydia/Installer获取它。

也就是说,您需要越狱您的iPhone才能安装JVM。

GUI可以设计成AWT-GUI的样式。

总的来说:没有解决方案(苹果不允许在其设备上运行其他应用程序的应用程序)

如果您不介意对部署应用程序的设备进行黑客攻击:是的,不应该有太大问题。如果您感兴趣,有大量教程可以教您如何黑客攻击您的iPhone...

编辑:有一个问题!如果您没有文件libuicaboodle,则无法运行iPhone的任何Java GUI应用程序。还有人有这个文件吗?我再也找不到它了:o(

问候


3
另一方面,iPhone如果没有越狱的话,其实相当无用;-) - Brimstedt
+1 点赞 Birsmstedt 和 +1 点赞 Armocreations,我完全同意... - Ta Sas

0

Web应用程序当然可以使用Java开发,但是您不允许在iPhone上运行Java应用程序(设备上未授权VM)。

有一些Java转换为Objective-C的工作,例如XMLVM(请查看Google TechTalk视频)。


0
最后我可以得出的结论是,人们可以轻松地使用Java开发iPhone Web应用程序。要在Java中开发iPhone本机应用程序,可以使用alcheMo或XMLVM进行一些工作。我没有使用过alcheMo或XMLVM,但肯定会期待它们的使用。
谢谢大家。

0

其他的Java到本地编译器怎么样?我记得有一个叫做Jet的吧?

这个编译器将Java编译成本地代码。


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