在网页上运行java(FX)上的应用程序

时间:2018-03-20 04:04:21

标签: java javafx browser

我目前正在写一个关于javaFX的游戏,我计划将它发布在我未来运行的网站上(最终利用广告时)。问题是,在稍微搜索之后,似乎无法在浏览器上运行java应用程序。

允许人们通过浏览器运行它真的有助于共享程序。

我的问题是:今天(2018)有没有办法通过网络运行java应用程序?虽然我喜欢java,但没有浏览器支持似乎是一个非常非常糟糕的主意。

哦,我也听说过Java Web Start。虽然看起来它只是避免了问题(没有在浏览器中运行),但它似乎是共享应用程序的好方法。问题是它似乎(将会?)弃用?我很无奈,就像java甚至不再尝试......

PS:如果它有所不同,我的游戏将成为第三人称视角的2D游戏。它还需要一些服务器的东西,因为玩家将创建"竞技场"其他人可以挑战。我会说我的游戏不会简单"。

1 个答案:

答案 0 :(得分:4)

如果您愿意为代码签名证书付费,那么Java Web Start可以很好地完成工作。 (它们比普通的SSL证书贵很多。)这个想法是用户点击页面上的超链接,这会导致用户的Java安装启动你的应用程序(可能在安装之后)。这要求用户事先安装Java。

如果您没有资源或希望使用代码签名证书,可以查看https://docs.oracle.com/javase/9/deploy/self-contained-application-packaging.htm。它允许您为JavaFX应用程序创建本机安装包。缺点:您需要每个平台为其创建安装程序。这意味着,您需要Windows来创建Windows安装程序,OS X来创建OS X安装映像,而Linux需要创建Linux软件包。有些人可能还需要使用本机工具进行签名。

Java 9包括jmodjlink工具,它们能够创建带有可执行shell脚本或.bat文件的文件树。一个主要的优点是,如果您在计算机上解包外部平台的JDK,您可以为任何平台构建这样的树,无论您自己的平台如何。另一个优点是用户根本不需要安装Java。缺点是脚本需要终端,除非在Linux上运行。

当然,你可以去手动路由并分发一个zip文件,其中包含你的.jar文件,你编写的shell脚本和你编写的.bat文件。它并不优雅,但它总比没有好。但它可能会绊倒一些非技术用户。

有许多工具可以从.jar文件创建本机可执行文件,但我不熟悉它们(我更愿意避免使用第三方工具,除非它们确实是必需的。)

无论您选择何种方法,答案都是相同的:您在网页上分发用户下载并运行的内容。除了下载过程外,浏览器不参与。

您不能做的是让用户在浏览器中运行您的应用程序。那是deprecated,有充分的理由:这对于浏览器性能,Java运行时,安全性和用户体验来说都是一场灾难。 Firefox已经禁止使用插件,因此您将锁定大部分用户。