ClassNotFound在浏览器中运行applet时出现异常

时间:2012-11-27 04:49:53

标签: java wordpress lwjgl slick2d

所以我正在尝试运行我在网站上使用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粘贴在该文件夹中,但没有运气。有帮助吗?提前致谢

1 个答案:

答案 0 :(得分:0)

我认为这可能是因为您需要在网站上拥有本机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扩展名即可 其他本机jar(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 - 您要签名的jar文件 ^ mysignedjar.jar - 输出jarfile,它将是targetjar.jar的签名副本

在我上面的文件结构中,我签署了所有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

这应该在签署所有罐子后解决您的黑屏问题。 如果它不适合你留下一些反馈,我们会想出来,也许会逐步回答。