Создание исключения Java-апплета: отсутствует поле <jnlp> - PullRequest
3 голосов
/ 13 января 2012

Я вроде как на грани того, чтобы заставить мою Java-игру работать в браузере.Мне удалось запустить его как приложение Java Web Start, но преобразование его в апплет в окне браузера сводит меня с ума.

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

Я изменил основной класс так, чтобы он extends JApplet вместо JFrameно кроме этого я не знаю, что делать.

И да, я прочитал http://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html и Google исправил ошибку.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Элемент JNLP должен быть:

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

или, так как было бы более распространенным иметь кодовую базу 1-й ..

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

Но убедитесь, что вы проверяете JNLP, используя JaNeLA . Посмотрев на него, он может проверить JNLP гораздо лучше, чем я.

0 голосов
/ 13 января 2012

Это ошибка в обновлении JDK версии 1.6 14: http://www.canoo.com/jira/browse/UBA-8105. Какой JDK вы используете?Попробуйте с JDK 1.7.

...