我们有一个客户,他们正在从Windows Mobile(和IE Mobile)切换到基于Android的设备。可以在IE Mobile中加载,但显然Android将不支持ActiveX。因此,我们需要将应用程序重新执行到特定于Android的平台上,而Java是这样做的明显选择。 ActiveX小程序在IE中加载的方式几乎相同(即,它已完全集成到浏览体验中)。

#1 楼

之前曾在这里问过类似的问题,Android上不支持JAVA小程序的简称。 Android上使用的JAVA版本不只是运行Java JAVA,因此您需要首先在电话上获取JAVA编译器才能运行任何小程序。我认为这是不可能或至少不可行的。

为什么不下载Android SDK并制作自己的应用?您不必在市场上出售它,但是如果您的应用程序可以被他人使用,则可以这样做,这可能有助于收回在开发上花费的一些钱。

评论


为什么不下载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

#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小程序是受支持。