创建Java小程序时出现异常:缺少<jnlp>字段。

3

我很苦恼,尝试让我的Java游戏在浏览器中运行。我已经成功地将其作为Java Web Start应用程序运行,但将其转换为嵌入浏览器窗口的applet仍然使我抓狂。

MYAPPLET.jnlp:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp href="MYAPPLET.jar" codebase="http://www.myDomain.com/directoryContainingJar/">
    <information>
        <title>Name</title>
        <vendor>----</vendor>
        <offline-allowed />
    </information>
    <resources>
        <j2se version="1.4+"
             href="http://java.sun.com/products/autodl/j2se" />
        <jar href="MYAPPLET.jar" main="true" />
    </resources>
    <applet-desc 
        name="Name"
        main-class="main.MainClass"
        width="700"
        height="600">
    </applet-desc>
</jnlp>

在我的HTML文件中:
<applet width="700" height="600" code="main.MainClass">
     <param name="jnlp_href" value="MYAPPLET.jnlp">
</applet>

加载页面时出现以下错误:
ExitException[ 3]MissingFieldException[ The following required field is missing from the launch file: <jnlp>]
    at sun.plugin2.applet.JNLP2Manager.redirectLaunchDesc(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.initialize(Unknown Source)
    at sun.plugin2.main.client.PluginMain.initManager(Unknown Source)
    at sun.plugin2.main.client.PluginMain.access$300(Unknown Source)
    at sun.plugin2.main.client.PluginMain$2.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Error while initializing manager: ExitException[ 3]MissingFieldException[ The following required field is missing from the launch file: <jnlp>], bail out

我已经更改了主类,使其扩展JApplet而不是JFrame,但除此之外我不知道该怎么做。
是的,我已经阅读了http://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html并在Google中搜索了错误。

请注意,documentBaseapplet-desc元素的必需属性。 - Andrew Thompson
2个回答

1

JNLP元素应该是:

<jnlp href="MYAPPLET.jnlp" codebase="http://www.myDomain.com/directoryContainingJar/">

或者,因为通常情况下代码库会先存在...

<jnlp codebase="http://www.myDomain.com/directoryContainingJar/" href="MYAPPLET.jnlp">

但请确保使用JaNeLA验证JNLP。它可以比我更好地检查JNLP。


0

谢谢你的帮助。不过我又遇到了一个错误(我已经更新了问题)。它抱怨缺少<jnlp>字段,尽管在我的jnlp文件中可以看到:( - Chro
我之前一直在使用1.6更新29,但现在我正在安装1.7版本,只是为了确保那个bug不会出现。 - Chro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接