0

上个月我一直在开发 Java Applet 游戏,现在我正试图将其嵌入 HTML 页面。尽管已经在下一个代码之后签署了我的 .jar,但我每次都收到NullPointerException :

keytool -genkey -keystore myKeyStore -alias me
keytool -selfcert -keystore myKeyStore -alias me
jarsigner -keystore myKeyStore Franky.jar me

一旦我尝试在我目前正在工作的页面上运行它:http: //zeytpruebas.prosopin.com/index.html似乎我的 .jar 仍然未签名/作者未知。我的游戏通过 Eclipse IDE 运行无错误,我的嵌入代码也无错误,因为我使用一个简单的 HelloWorld 小程序对其进行了测试。

否则,有我的嵌入代码:

<applet code="franky_BF38/Principal.class" archive="Franky.jar" width="800" height="480"></applet>

另一方面,我的 .jar 看起来像这样:

音频(文件夹)

· franky_theme.au

图片(文件夹)

· 1.jpg

· 2.jpg

级别(文件夹)

· map1.txt

· map2.txt

franky_BF38(类文件夹)

· Principal.class(也就是主类)

· 敌人.class

· Player.class (...)

META-INF(文件夹)

· 清单.MF

·ME.DSA

· ME.SF

我查看了所有小程序线程,但没有任何响应对我有用。如果您需要任何代码或档案,请随时询问。任何帮助将不胜感激。

编辑:在我的页面上添加了 Java 控制台的线程转储(由于长扩展):转储

编辑 02/05/2013:关于 _constructor 的警告没有初始化字段 [imagen_actual,fondo,franky_salto...]_ 我在 Principal 类下面有以下代码:

private Image imagen, franky, franky_agachado, franky_salto, fondo,
        imagen_actual, pacifista;
public static Image tilegrassTop, tilegrassBot, tilegrassLeft,
        tilegrassRight, tiledirt, tileocean;
private Graphics graficos;
private URL direccion;
AudioClip disparo, tema;

然后我将 valors 直接分配给 init() 方法中的这些变量,如下所示(无初始化):

try {
        direccion = getDocumentBase();
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
    franky = getImage(direccion, "imagenes/franky_estatico.png");
    franky_agachado = getImage(direccion, "imagenes/franky_sentado.png");
    franky_salto = getImage(direccion, "imagenes/franky_salto.png");
    imagen_actual = franky;
    pacifista = getImage(direccion, "imagenes/pacifista1.png");
    fondo = getImage(direccion, "imagenes/background.png");

    tiledirt = getImage(direccion, "imagenes/tiledirt.png");
    tilegrassTop = getImage(direccion, "imagenes/tilegrasstop.png");
    tilegrassBot = getImage(direccion, "imagenes/tilegrassbot.png");
    tilegrassLeft = getImage(direccion, "imagenes/tilegrassleft.png");
    tilegrassRight = getImage(direccion, "imagenes/tilegrassright.png");

    disparo = getAudioClip(getCodeBase(), "audio/miss.au");
    tema = getAudioClip(getCodeBase(), "audio/franky_theme.au");

如前所述,代码在 Eclipse 中运行时没有错误,但 Checker Framework 对此提出了建议。

4

1 回答 1

0

经过几个小时的调试,Java 控制台最终决定提供一些关于异常的好信息。显然 Java 不太喜欢浏览器中的那些代码行:

Frame frame = (Frame) this.getParent().getParent(); 
frame.setTitle("Franky BF38, the Iron Pirate");

尽管有一些我很快会修复的错误,但我删除了它,现在可以正常工作。希望这将在未来帮助其他用户。感谢大家的贡献。

于 2013-05-03T15:25:26.570 回答