Creación de una excepción de Java Applet: Field Field
-
27-10-2019 - |
Pregunta
Estoy un poco al final de mi ingenio tratando de hacer que mi juego Java funcione en un navegador. He logrado que se ejecute con éxito como una aplicación de inicio web de Java, pero convertirla en un applet de ventana en el navegador me está volviendo loco.
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>
En mi archivo HTML:
<applet width="700" height="600" code="main.MainClass">
<param name="jnlp_href" value="MYAPPLET.jnlp">
</applet>
Recibo este error al cargar la página:
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
He cambiado la clase principal para que extends JApplet
en vez de JFrame
Pero aparte de eso, no sé qué hacer.
Y sí, he leído http://docs.oracle.com/javase/tutorial/deployment/applet/deployingapplet.html y Google el error.
Solución
El elemento JNLP debería ser:
<jnlp href="MYAPPLET.jnlp" codebase="http://www.myDomain.com/directoryContainingJar/">
o, dado que sería más común tener la base de código 1st ..
<jnlp codebase="http://www.myDomain.com/directoryContainingJar/" href="MYAPPLET.jnlp">
Pero asegúrese de validar el JNLP usando Janela. Puede verificar un JNLP mucho mejor de lo que puedo mirándolo.
Otros consejos
Este parece ser un error en JDK versión 1.6 Actualización 14: http://www.canoo.com/jira/browse/uba-8105. ¿Qué JDK estás usando? Prueba con un JDK 1.7.