我是否应该从Applet迁移出去,如果是这样的话?

时间:2015-06-10 20:09:18

标签: java javascript html5 applet

我是一名业余爱好程序员,致力于开发在网页中运行的Java游戏(JApplet)。我已经完成了编码,使用Netbeans时运行正常,但我在部署它时遇到了很多麻烦。我已签名,它以沙盒模式运行。但是,在许多不同的计算机(mac和pc)和不同的浏览器上测试它们似乎都不想轻易地运行applet。

看了之后,它们似乎存在很高的安全风险(为什么浏览器不热衷于运行它们)以及搜索" applet是否已死/未使用"结果很多结果同意。我找了替代品,看了下面的清单。

  1. Java Web Start(显然也已死)
  2. JWrapper(不确定我是否热衷于第三方支持的代码)
  3. 在Javascript / HTML5中重新开始
  4. 我不知道javascript或html5所以这意味着从头开始,所以不热衷于该选项。

    Java Web Start,也许它不像人们所说的那样死,但我不想依赖于可能在几年后最终被浏览器不支持的东西。

    JWrapper ...似乎只在浏览器之外运行应用程序,而我宁愿运行它。还不确定从JApplet转移到JWrapper需要多长时间。

    我真的很感激这方面的一些指导,因为我主演了三个相当可疑的选项。

    非常感谢提前

    更新

    感谢您到目前为止的所有回复。这证实了我对我过时技术的担忧!

    我接受了两件事。

    1. 将Java转换为JavaScript的GWT:我快速浏览了一下,虽然看起来有一个小的学习曲线,但这次可以快速修复。
    2. 提供的答案表明我应该转向JavaScript和HTML5。我的主要问题是我不想花六个月学习一门新语言。也许我过分关注学习曲线。我用C,C ++,Java,C#编程,所以我非常擅长基本编码(imho),但我从未做过任何服务器方面的事情。有人想过要花多长时间学习?
    3. 由于

5 个答案:

答案 0 :(得分:3)

如果你认真对待它,你肯定应该使用JavaScript / HTML5,因为它是所有主流浏览器中唯一可用的选项,包括移动版本。

如果这只是一个爱好,你现在仍然可以使用Applets,但请注意Chrome以及Edge(应该取代Internet Explorer的新Microsoft浏览器)不再支持Java插件。 Firefox在可预见的未来仍然应该支持它,但即使他们don't recommend使用像Java这样的插件。 Safari目前也支持它。

更新1

支持包括Java在内的NPAPI插件支持的Mozilla announced将于2016年底从Firefox中删除。

这意味着仍然支持Applet的唯一主流浏览器将是Windows上的Internet Explorer(不再开发),Mac OS X上的Safari,以及Linux上的任何内容。

如果您仍然喜欢使用Java而不是JavaScript / HTML5,唯一不错的选择是Java Web Start。它只使用浏览器启动一旦启动就不与浏览器交互的Java应用程序。

更新2

今天Firefox 52发布了。从此版本开始,Mozilla放弃了对NPAPI插件的支持,包括Java(Adobe Flash是唯一的例外)。对于Safari,Apple是preparing to do the same。 Internet Explorer是Java Applets支持的唯一主要浏览器。

Oracle 9中的deprecating the Applet API

答案 1 :(得分:1)

另请参阅Vaadin(https://vaadin.com/framework)作为在浏览器中将HTML应用程序作为HTML5运行的一种方式。它具有与GWT类似的全Java编程模型,但也自动处理服务器 - 客户端通信。它是一个开源项目,拥有一个大小合适的组件库。

答案 2 :(得分:0)

您还可以使用原生邮件与Chrome扩展程序或Chrome应用程序通信您的原生应用程序,但此修复程序仅适用于Chrome。

Native Messages

在Firefox中,您可以使用:

js-ctypes

答案 3 :(得分:0)

自从第一次警告Chrome放弃Java小程序后,我成功部署了Java Web Start,没有任何问题

我现在正在使用HTML5进行替换,到目前为止它可以执行Java Applet(或使用Web Start运行时的Java应用程序)可以执行的操作的大约50%

答案 4 :(得分:0)

Firefox 52版仍然可以运行Java applet。 在“about:config”页面中,使用“false”值创建一个新的布尔值“plugin.load_flash_only”。 或者您可以直接使用Firefox ESR版本(企业)。 希望它有所帮助。