如何导出 PApplet 以使其可在浏览器中运行?

How do I export a PApplet to make it runnable in a browser?

我有一个 Eclipse Java 项目,其中我有一个 src/demo 包,其中包含一个处理演示,位于扩展 PApplet 的单个 class 中。该演示在 Eclipse 中运行良好。

我想演示这个包,最好是在网络浏览器中。能够在 Eclipse 项目之外 demo 仍将不胜感激。

我试过将包导出到 JAR 并将其嵌入到 HTML 文件中。 Firefox 似乎是唯一支持Java 等NPAPI 插件的现代主流浏览器(Chrome 46 只是显示一个灰色框,Safari 9 显示一个空白页面)。
Firefox 一直抛出 "Class/Library not found" 错误,直到我手动将所有库复制到与 JAR 相同的目录,并将它们包含在 HTML 中 applet 元素的 archive 属性中。

现在 Firefox 显示黑色轮廓,但应用程序是空白的,这可能是因为我没有从 Eclipse 中的 data 文件夹复制资源。但是我不知道如何将它们包含在 JAR 中。

我尝试按照 this guide 并简单地向 PApplet 添加一个 main() 但是当我将它导出为可运行的 JAR 并尝试 运行它。

系统信息:Mac OS X 10.11.0, Java 1.8.60

处理这一切的系统方法是什么?

我认为回答您问题的最佳方式是澄清您对所遇到问题的一些困惑。

首先,小程序几乎已经死了。正如您提到的,它们在 chrome 中根本不起作用。让它们在其他浏览器中工作是一件令人头疼的事情,对于您 对于您的最终用户而言。您必须为证书付费或让您的用户更改他们的 Java 安全设置。

此外,从处理 3 开始,PApplet 不再扩展 Applet。所以您不能再简单地扩展 PApplet 并将其视为一个小程序。 (您忘记告诉我们您使用的是哪个版本的 Processing。)

老实说,最好的方法是忘记小程序。

如果您忘记了小程序,那么您可以通过转到文件 -> 导出来部署为标准可执行文件,或者使用类似 JarMatey 的可运行 jar(完全披露:我写了 JarMatey)。请务必注意,不足以 简单地向您的 class 添加一个 main() 函数。

但老实说,部署 Processing sketch 的最佳选择是使用 Processing.js 部署为 html5/JavaScript。这应该很简单,只要您不使用任何 Java 库。