0

所以我试图在我的网站上运行一个使用 Slick 2D 制作的小程序。我编写了以下 HTML 并将其放在我网站的新页面上

    <applet code="org.lwjgl.util.applet.AppletLoader" 
    archive="lwjgl_util_applet.jar" 
    codebase="." 
    width="800" height="600">

    <param name="al_title" value="myslickgame"> 
    <param name="al_main" value="org.newdawn.slick.AppletGameContainer"> 
    <param name="game" value="org.defaultpackage.main">

    <param name="al_jars" value="spacewalk.jar, lwjgl.jar, slick.jar"> 

    <param name="al_windows" value="windows_natives.jar"> 
    <param name="al_linux" value="linux_natives.jar"> 
    <param name="al_mac" value="macosx_natives.jar"> 

    <param name="separate_jvm" value="true"> 
    </applet> 

但是,每当我加载该页面时,我都会收到一个找不到类的错误。我已将 lwjgl.util.applet JAR 和我的 applet JAR 添加到 public_html 文件夹,但它似乎仍然没有读取它们。如果这很重要,它是一个 wordpress 网站。我试图找到 WordPress 将其页面数据存储在哪里,以便我可以将 JAR 粘贴在该文件夹中,但没有这样的运气。有帮助吗?提前致谢

4

1 回答 1

0

我认为这可能是因为您还需要在网站上拥有本机 jar 文件(对于您正在使用的操作系统)。

确保您有 jar 文件(或至少有一个适用于您的操作系统的 jar 文件):

<param name="al_windows" value="windows_natives.jar"> 
<param name="al_linux" value="linux_natives.jar"> 
<param name="al_mac" value="macosx_natives.jar">

在与 html 文件相同的目录中。

你可以在 lwjgl natives 文件夹中找到自己制作这个 jar 的文件,windows_natives.jar 应该包含这些文件:

jinput-dx8.dll
jinput-dx8_64.dll
jinput-raw.dll
jinput-raw_64.dll
lwjgl.dll
lwjgl64.dll
OpenAL32.dll
OpenAL64.dll

只需将它们放入一个新的 .zip 文件夹,然后将其重命名为 .jar 扩展名。其他本地 jars(linux、mac、solaris)应该包含它们各自来自 lwjgl 发行版的本地文件。

我使用 lwjgl 的文件夹结构如下:

index.html
jinput.jar
linux_natives.jar
lwjgl.jar
lwjgl_util.jar
lwjgl_util_applet.jar
mjgame.jar (the java game jar)
slick-util.jar
windows_natives.jar

如果这不是问题的答案,也许您可​​以发布您收到的异常的副本,我们可以进一步调试此问题。

此外,您无需将文件上传到网站上即可测试您是否正确设置了文件。您可以简单地在 Internet 浏览器中从本地磁盘打开 html 文件,它应该可以工作。

我知道弄清楚这是多么令人沮丧,我花了一周的时间才弄清楚为什么我第一次没有做对。

祝你好运!


- 编辑 -

我很确定您还必须对 jar 文件进行签名,否则您可能会遇到黑屏。您需要使用 JavaSDK bin 文件夹中的 keytool 和 jarsigner,如下所示:

C:/Program Files/Java/jdk1.7.0_07/bin

这是一个关于签署 jar 文件的教程页面:

https://www.owasp.org/index.php/Signing_jar_files_with_jarsigner

您需要首先创建一个密钥库文件,以存储证书信息(据我了解)您可以使用以下命令执行此操作:

keytool -genkey -keystore testkeystore -alias bob

^ testkeystore - 是存储证书信息的文件 ^ bob - 你决定的别名

然后你可以使用 jarsigner 工具对 jar 文件进行签名:

jarsigner -keystore testkeystore -signedjar mysignedjar.jar targetjar.jar bob

^ targetjar.jar - 您要签名的 jarfile ^ mysignedjar.jar - 将成为 targetjar.jar 签名副本的输出 jarfile

在我从上面得到的文件结构中,我签署了所有的 jar 文件:

jinput.jar
linux_natives.jar
lwjgl.jar
lwjgl_util.jar
lwjgl_util_applet.jar
mjgame.jar (the java game jar)
slick-util.jar
windows_natives.jar

这应该可以在签署所有 jar 文件后解决您的黑屏问题。如果它不适合你留下一些反馈,我们会解决这个问题,也许会写一个逐步的答案。

于 2012-11-27T14:05:57.500 回答