你能在网页上 运行 java 可执行文件吗?

Can you run a java executable on a webpage?

我知道之前有人问过类似的问题,但我似乎找不到答案。我正在尝试 运行 一个 java 可执行文件,该文件在我的网页上具有其他文件依赖性,但我不太确定如何使用小程序执行此操作。我不关心任何安全问题,暂时只是为了私人测试。

好吧,网页实际上就是一堆文字,而文字并没有什么"run",所以从某种意义上说没有。

现在,网页可以包含可执行程序的 "text",许多 Web 浏览器读取文本的 "executable program" 部分和 运行。所以从某种意义上说,网页可以包含可执行文件 运行 当他们被查看时。

最后,Java 将网页包含在内的机制不仅仅是一回事。在早期,它被包含在一个包含 "java applets" 的网页中,经过一段时间的采用,最终被低估了,最后看到大多数网络浏览器放弃支持,以减少人们可以交付网络的方式页面恶意软件。

引入了Java的第二个网页传递,JNLP,或"Java Web Start"。在这种方法中,跟随网页 link 会导致 Java 程序被下载到机器上,并且该程序会 运行。与 applet 相比,这是安全性方面的改进,但不足以满足所有人的安全性改进。 JNLP,再次主要是由于低广告/不良新闻率,被删除。

这意味着 Java 与网页相关的唯一剩余选项是:

  1. 使用 link 下载完整的 Java 程序(可能是安装程序)
  2. 在服务器端构建 Java 应用程序,因此 Java 代码不需要 运行 在网页中(好的,实际上是网络浏览器),但仅输入和输出网页。

大多数 Web 应用程序已经执行 #2 已有很长一段时间了。大多数 pre-web 应用程序一直在做 #1 的时间更长。

请注意,安装的程序不需要是 web unaware,它仍然可以连接到后端 Java Web 服务,它使用 web 技术,但不是 "Java code running in a web browser"。

我希望这对您有所帮助,如果您是 Java 的粉丝,请不要认为缺少 "run in a web browser" 是一个糟糕的选择,除了 [=40] 没有其他编程语言=]如今,脚本具有 "run in a web browser" 的任何能力。

just for private testing

好的,只要您意识到 applet 不仅已被弃用,而且已经过时并且永远不会在今天为任何实际应用程序编写。

小程序在 Java 9 中被弃用后最终在 Java11 中完全删除,因此您首先需要的是旧版本的 Java。

在浏览器上,小程序 运行 通过使用“NPAPI”(“Netscape 插件 API”)。浏览器制造商多年来一直在逐步淘汰它(由于安全性、HTML5 的出现等),所以无论哪种浏览器的现代版本都不太可能仍然允许小程序 运行;您必须进行搜索才能找到支持 NPAPI.

的最后一个版本

我看到人们决定使用小程序只是因为他们认为这是在 Java 中编写图形应用程序的唯一方法,因此值得一提的是 JavaFX 或 Swing 应该用于此相反。

为了完整起见,至少也应该提到 https://www.jpro.one/。这是一项新技术,让您可以在浏览器中 运行 Java,但无需任何小程序或任何其他插件。服务器端是纯 Java/JavaFX,客户端是纯 Web。查看演示页面。