代码之家  ›  专栏  ›  技术社区  ›  BarriaKarl

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

  •  0
  • BarriaKarl  · 技术社区  · 7 年前

    我目前正在javaFX上写一个游戏,我计划将来把它发布在我运行的网站上(在那里结束利用广告)。问题是,在进行了一点搜索之后,似乎无法在浏览器上运行java应用程序。

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

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

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

    附言:如果有什么不同的话,我的游戏将是一个有第三人称视角的2D游戏。它还需要一些服务器材料,因为玩家将创建其他人可以挑战的“竞技场”。我会说我的游戏不会“简单”。

    1 回复  |  直到 7 年前
        1
  •  4
  •   VGR    7 年前

    如果您愿意支付代码签名证书的费用,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包括 jmod jlink 工具,能够使用可执行的shell脚本或创建文件树。bat文件。一个主要优点是,如果您在机器上解包外部平台JDK,那么您可以为任何平台构建这样的树,而不管您自己的平台如何。另一个优点是用户根本不需要安装Java。缺点是脚本需要终端,除非在Linux上运行。

    当然,您可以通过手动方式分发一个zip文件,其中包含您的。jar文件、您编写的shell脚本和。您编写的bat文件。这并不优雅,但总比什么都没有好。但它可能会绊倒一些非技术用户。

    有许多工具可以从中创建本机可执行文件。jar文件,但我对它们并不熟悉(我宁愿避免使用第三方工具,除非它们确实必要)。

    无论你选择什么方法,答案都是一样的:你在你的网页上发布一些用户下载并运行的东西。除下载过程外,不涉及浏览器。

    您不能做的是让用户运行您的应用程序 在…内 浏览器。那就是 deprecated ,理由很充分:这对浏览器性能、Java运行时、安全性和用户体验都是一场灾难。而且Firefox几乎禁止插件,所以你将锁定相当大比例的用户。