我们有一个客户,他们正在从Windows Mobile(和IE Mobile)切换到基于Android的设备。可以在IE Mobile中加载,但显然Android将不支持ActiveX。因此,我们需要将应用程序重新执行到特定于Android的平台上,而Java是这样做的明显选择。 ActiveX小程序在IE中加载的方式几乎相同(即,它已完全集成到浏览体验中)。
#1 楼
之前曾在这里问过类似的问题,Android上不支持JAVA小程序的简称。 Android上使用的JAVA版本不只是运行Java JAVA,因此您需要首先在电话上获取JAVA编译器才能运行任何小程序。我认为这是不可能或至少不可行的。为什么不下载Android SDK并制作自己的应用?您不必在市场上出售它,但是如果您的应用程序可以被他人使用,则可以这样做,这可能有助于收回在开发上花费的一些钱。
#2 楼
我能想到的仅有的两个选择是,使HTML5跨平台移动应用程序可在整个范围内运行,话虽如此,但我可以理解想要依靠IE在浏览器中支持ActiveX应用程序的公司环境。导致您认为台式机上的Java与Android上的Java是不一样的。在第二个选项中,大多数情况下,SDK涵盖了Java 5的子集,集合,apache,语法等方面,它们是相同的,因此可能需要重新编译业务逻辑并为Android平台的前端提供新的用户界面。 (是的,您可以针对Android SDK进行重新编译...)
总之,除非有动机和动力来重建它以使其与现在和将来的设备兼容,否则您将无法进行任何操作。
编辑
在下面留下评论后,要回顾一下:
浏览器本身不支持Java applet的运行。 JRE!= Android的Java Runtime或DalvikVM。桌面Java使用Sun / Oracle认可的JavaVM / JRE和Oracle认可的OpenJava JDK。 JRE = Java Runtime Environment
终端IDE确实包含“一个Java编译器”,很可能(我将安装它并在此btw报告反馈)这是一个非常有限的缩减版本根据该博客的介绍,它是OpenJDK的唯一本地版本,无法运行于本地Java Windowing应用程序(如Swing或JavaBeans),原因很简单,原因是Java Runtime Environment的版本与Android完全不同,并且高度不同此外,DalvikVM对Swing,JavaBeans等了解为零,因此为什么要用某种方式解释台式机上的Java与Java不同在Android上。
至于我认为Android非常像Linux的观点,是这个观点,它不是Linux,内核是linux本身,但是用户级工具由busybox提供,此外,本机C运行- Android下的时间库称为“仿生”,并且由于诸如ARM之类的微不足道的处理器而受到限制。与台式机Linux版本相比,gcc提供了运行时库-GNU C库或更常见的名称为glibc-它支持更多的C / C ++特性,例如STL,Boost和完整的异常处理。这是我的观点,与本主题分开,在这里走过了人迹罕至的地方。 :)
评论
公司系统需要Java,对此我无能为力。我唯一能做的就是配置android平板电脑。我不完全理解的是为什么不能使开源浏览器和jre在Android平板电脑上运行。
– felix
13年7月9日在20:55
浏览器本身不支持Java applet的运行。 JRE!= Android的Java Runtime或DalvikVM。桌面Java使用经Sun / Oracle和OpenJava JDK认可的JavaVM。
–t0mm13b
13年7月9日在21:03
对。我不明白为什么无法编译并安装openjava jdk在android中运行。也许我对android像linux的看法过于乐观了?
– felix
13年10月10日在8:53
有趣的是,似乎有一个terminal-ide.com包含一个Java编译器。
– felix
13年7月10日在12:49
我感谢您偏离道路,谢谢!现在,我越来越相信,完全有可能没有人进行配置和编译工作。我应该补充一点,我知道本地的dalvikvm是无关紧要的。我的问题从来没有关于这个。这是关于有人为Android编译桌面Jre。我认为已经有一个ARM版本。只是不是一个Android。
– felix
2013年7月10日15:46
#3 楼
我找到的最接近的是http://www.apogee.com/products/cjre-a不幸的是,如该页面上所述:
注意Apogee由于对CJREs + A的需求不足而于2012年6月暂时停止了CJREs + A
的进一步开发。请
如果您对针对您选择的Android运行设备的CJRE + A感兴趣,请与Apogee联系,以便“批量”分发给您的客户和/或其他第三方
。
...并找不到下载/演示。
取自他们的产品页面http://www.apogee.com/听起来确实很棒的产品:
CJRE + A-“ CJRE for Android”适用于运行以下设备的设备
Android v4.x或更高版本,除了执行Android应用程序外,还需要执行Java SE 5和SE 6应用程序。
我们仍然可以梦想。我还没有联系他们。我知道许多公司正在寻找此功能。我无法想象它会以太快的速度下降(或者说比闪存慢)?
我还没有联系过Apogee,也许值得一试...如果有人找到解决方案,请及时更新!谢谢。
#4 楼
Android仍然不支持Java applet,也不需要主要工作。Android中的Java并不是“真正的” Java,它是Google定制的书面版本。 Android应用程序可能是用Java编写的,但在编译时会转换为Dalvik。
因此,开发与Java Applets兼容的浏览器几乎是不可能的。
评论
为什么第三方浏览器不能包含对Java插件的支持?我注意到stackoverflow.com/questions/2433338/…上的m0rtadelo实际上声称已使其正常工作!实际上,我只想让它能在平板电脑上工作就可以了。
– felix
13年7月9日在20:19
@Felix,因为Android系统未包含它。 m0rtadelo在他们的设备中运行了整个操作系统,这就是他们如何使其运行的方式。
– Liam W
13年7月9日在22:04
好吧..如果不危险,并且这是唯一的选择,我不介意在平板电脑上这样做。也许这是一个单独的问题。
– felix
13年7月10日在8:52
#5 楼
在Stack Overflow上有一篇标题为“是否有可能在Android或Blackberry上运行小程序”的文章,该文章将为您提供更多见解,可以在这里找到:https://stackoverflow.com / questions / 2433338 /在Android或Blackberry上有可能在Android上运行小程序
我在其他地方看过,但是似乎没有确凿的证据表明Java小程序是受支持。
评论
为什么不下载Android SDK并制作自己的应用-因为我们的应用需要尽可能地跨平台。它非常复杂,将其从基于Web的应用程序转换为独立的应用程序所涉及的开销非常大。感谢您的注意。那么,绝对不可能在浏览器中嵌入任何其他功能吗?我们要做的主要事情是收集签名,就像快递员在交货后一样。在IE中,这是一个很小的ActiveX控件。
–远征军
2010-09-14 0:07
如果您的JAVA应用程序存在于您将手机指向您的网站上,则可能能够以这种方式运行JAVA代码,但是我仍然对此表示怀疑,因为Android OS并没有一种原生的方式可以让您和我理解JAVA代码知道。 Android上的JAVA版本已修改。最好的选择是考虑为不同的平台或使用不同的语言(例如HTML5或Flash)(非Jailbroke Apple设备不支持)创建应用程序。
–网站
2010-09-14 12:52
对不起,我很抱歉,但是要知道,现在为Apple和Android制作应用程序确实非常容易。他们拥有可以为您完成大部分工作的GUI系统。可能没有您想的那么难。我至少会调查。
–网站
2010-09-14 12:53
由于Android 2.2及更高版本(以及某些运行Android 2.1的手机)可以在浏览器中运行Flash小程序,因此Flash可能是比Java更好的跨平台选择。
–GAThrawn
2011年1月5日,11:22
而Android的Dalvik与JVM的字节码不兼容。不使用Android中省略的库的Java代码(例如Swing / AWT)应该与源代码兼容,因此,您只需要重新编译即可,大多数东西只要不使用那些省略的库就可以工作。
– Lie Ryan
2011年11月7日在18:16