是否有任何Android浏览器都支持在浏览器中加载Java Applet?


20

我们有一个客户正在从Windows Mobile(和IE Mobile)切换到基于Android的设备。

我们有一些特定的软件,可以通过在IE Mobile中加载的ActiveX小程序将其部署到他们的WM员工,但显然Android将不支持ActiveX。因此,我们需要将应用程序重新执行到特定于Android的平台,而Java是这样做的明显选择。

是否有任何Android浏览器都支持在浏览器中加载Java Applet,这与ActiveX Applet在IE中加载的方式几乎相同(即,它已完全集成到浏览体验中)。

Answers:


9

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

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


1
Why not just download the Android SDK and make your own app-因为我们的应用程序需要尽可能跨平台。它极其复杂,将其从基于Web的应用程序转换为独立的应用程序所涉及的开销非常大。感谢您的注意。那么,绝对不可能在浏览器中嵌入任何其他功能吗?我们要做的主要事情是收集签名,就像快递员在交货后一样。在IE中,这是一个很小的ActiveX控件。

如果您的JAVA应用程序存在于您将手机指向您的网站上,则可能能够以这种方式运行JAVA代码,但是我仍然对此表示怀疑,因为Android OS并没有一种原生的方式可以让您和我理解JAVA代码知道。Android上的JAVA版本已修改。最好的选择是考虑为不同的平台或使用不同的语言(例如HTML5或Flash)(在非jailbroke Apple设备上不受支持)创建应用程序。

对不起,我很抱歉,但是要知道,现在为Apple和Android制作应用程序确实非常容易。他们拥有可以为您完成大部分工作的GUI系统。可能没有您想的那么难。我至少会调查。

1
由于Android 2.2及更高版本(以及某些运行Android 2.1的手机)可以在浏览器中运行Flash小程序,因此Flash对您而言可能是比Java更好的跨平台选择。
GAThrawn

1
Android的Dalvik与JVM的字节码不兼容。不使用Android中省略的库(例如Swing / AWT)的Java代码应该在很大程度上与源代码兼容,因此,您只需要重新编译即可,并且大多数东西只要不使用那些省略的库就可以正常工作。 。
Lie Ryan

3

我能想到的仅有的两个选择是,使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运行时环境

  • 终端IDE其中确实包含“Java编译器”,没准(我将安装它,并在此BTW报告反馈)这是一个非常有限的剪切下来的OpenJDK的版本,它是ARM唯一可用本机,根据本博客由于Java Runtime Environment的版本与Android完全不同,并且针对本机处理器进行了高度优化,因此,它不能执行 Swing或JavaBeans等本机Java Windowing应用程序。

此外,DalvikVM对Swing,JavaBeans等一无所知,因此为什么要用某种方式解释台式机上的Java与Android上的Java不同。

至于我认为Android非常像Linux的观点,是这个,不是 Linux,内核是linux本身,但是用户级工具由busybox提供,此外,本机C运行- Android下的时间库称为bionic,并且由于诸如ARM之类的较弱处理器而受到限制。与台式机Linux版本相比,gcc提供了运行时库-GNU C库或更常见的glibc-它支持更多的C / C ++特性,例如STL,Boost,完整异常处理。这是我的观点,与本主题分开,在这里走开了人迹罕至的道路。:)


公司系统需要Java,对此我无能为力。我唯一能做的就是配置android平板电脑。我不完全了解的是为什么不能使开源浏览器和jre在Android平板电脑上运行。
felix

1
浏览器本身不支持Java applet的运行。JRE!= Android的Java Runtime或DalvikVM。桌面Java使用的JavaVM已获得Sun / Oracle和OpenJava JDK的认可...
t0mm13b

对。我不明白为什么不能编译并安装openjava jdk在android中运行。也许我对android像linux的看法过于乐观了?
felix

有趣的是,似乎有一个terminal-ide.com包含一个Java编译器。
felix

1
我感谢您偏离道路,谢谢!我现在越来越相信,这完全可能的,它只是没有人做过的配置和编制工作呢。我应该补充一点,我知道本地的dalvikvm是无关紧要的。我的问题从来没有关于这个。这是关于有人为Android编译桌面Jre。我认为已经有一个ARM版本。只是不是一个Android。
felix

2

我找到的最接近的是http://www.apogee.com/products/cjre-a

不幸的是,如该页面上所述:

请注意,由于对Apogee的需求不足,Apogee在2012年6月暂时中止了CJREs + A的进一步开发。如果您对针对您选择的Android运行设备的CJRE + A感兴趣,请与Apogee联系,以“批量”分发给您的客户和/或其他第三方。

...而找不到下载/演示。

从他们的产品页面http://www.apogee.com/products获取的内容听起来确实很不错:

CJRE + A-“适用于Android的CJRE”适用于运行Android v4.x或更高版本的设备,除了执行Android应用程序外,这些设备还需要执行Java SE 5和SE 6应用程序。

我们仍然可以梦想。我没有联系他们。我知道许多公司正在寻找此功能。我无法想象它会下降得太快(或者说比闪光灯慢)吗?

我尚未联系Apogee,可能值得一试...如果有人找到解决方案,请随时向我们更新!谢谢。


1

如果没有大量的工作,Android仍然不支持Java applet,也不支持。

Android中的Java不是“真正的” Java,而是Google定制的书面版本。Android应用程序可能是用Java编写的,但在编译时便转换为Dalvik。

因此,开发与Java Applets兼容的浏览器几乎是不可能的。


为什么第三方浏览器无法包含对Java插件的支持?我在stackoverflow.com/questions/2433338/上注意到m0rtadelo 实际上声称它已经起作用了!实际上,我只想让它能在平板电脑上工作就可以了。
felix

1
@Felix,因为Android系统未包含它。m0rtadelo在他们的设备中运行着整个操作系统,这就是他们使它工作的方式。
利亚姆W

好的,如果不是危险的并且是唯一的选择,我不介意在平板电脑上这样做。也许这是一个单独的问题。
felix

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.