【问题标题】:Should I migrate away from Applets and if so to what?我应该从 Applets 迁移出来吗?如果是,迁移到什么?
【发布时间】:2015-08-26 07:05:32
【问题描述】:

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

经过调查,似乎它们存在很高的安全风险(为什么浏览器不热衷于运行它们)并且搜索“小程序是否已死/未使用”出现了很多同意的结果。我已经寻找替代品并看到了以下列表。

  1. Java Web Start(显然也死了)
  2. JWrapper(不确定我是否热衷于第三方支持的代码)
  3. 在 Javascript/HTML5 中重新开始

我不知道 javascript 或 html5,所以这意味着从头开始,所以不热衷于该选项。

Java Web Start,也许它并没有人们说的那么死,但我不想依赖可能在几年内最终不受浏览器支持的东西。

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

我非常感谢您在这方面的一些指导,因为我正在主演三个相当有问题的选项。

提前致谢

更新

感谢您迄今为止的所有回复。它证实了我对我正在研究过时的技术的担忧!

我了解了两件事。

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

谢谢

【问题讨论】:

  • 浏览器中的Java在这一点上已经死了。桌面上的 Java 表现不佳,一些浏览器已经禁止了 Java 小程序插件。
  • Chrome 不再支持小程序,它拥有40-50% 的市场份额。大约有一半的浏览器不会也永远不会支持您的小程序。小程序已死! Webstart 真的没有什么不同,避免。我建议您查看 GWT,它将 Java 代码编译为 JavaScript 应用程序。你的代码应该很容易移植。
  • @ssube 桌面上的 Java 表现不佳 什么?!你从哪里得到那个的?!桌面上的 Java 运行良好。
  • 我去过那里,我曾经是一个狂热的Java程序员,警惕Javascript。一些严厉的爱:浏览器中的 Java 已经绝迹,而 Javascript 比你想象的更容易学习和更强大。
  • @ValentinWaeselynck 实际上,Java 更容易学习。不过,关于意见已经足够了,回到问题......

标签: java javascript html applet


【解决方案1】:

如果您是认真的,那么您绝对应该使用 JavaScript/HTML5,因为它是所有主流浏览器(包括移动版本)中唯一可用的选项。

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

更新 1

Mozilla announced 表示,NPAPI 插件支持(包括 Java)将于 2016 年底从 Firefox 中移除。

这意味着唯一仍然支持 Applet 的主流浏览器将是 Windows 上的 Internet Explorer(不再开发)、Mac OS X 上的 Safari,而 Linux 上什么都没有。

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

更新 2

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

Oracle 在 Java 9 中是 deprecating the Applet API

【讨论】:

  • 我同意,网络的发展方向非常不需要插件。 HTML5/CSS3 和 Javascript 在可预见的未来仍将无处不在,并且不需要任何不应该成为跨平台所有浏览器一部分的东西。
  • 我朝着这个方向前进。就目前的 Javascript 开发而言,IMO 是不可持续的。模块是一种 hack,没有类型检查会导致浪费时间调试在 Java 中不可能的愚蠢行为,除非您使用框架,否则全局变量太多,Angular 已经在 v.2 并且与 1.x 非常不同,等等. 我预测在 2020 年之前会有一些新的类似 Java 的语言使 Web 开发变得安全/容易(就像使用 Java 一样),但生成的代码可以在所有浏览器中运行。有点像GWT,但很受欢迎。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您还可以使用 Native Messages 将您的 Native 应用程序与 Chrome 扩展程序或 Chrome 应用程序通信,但此修复仅适用于 Chrome。

    Native Messages

    在 Firefox 中也许你可以使用:

    js-ctypes

    【讨论】:

      【解决方案4】:

      自从第一次警告 Chrome 将放弃 Java Applets 以来,我成功部署了 Java Web Start,没有任何问题

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2020-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-07
          • 2013-12-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多