Création d'une exception Java Applet: manquant champ
-
27-10-2019 - |
Question
Je suis un peu à la fin de mon esprit en essayant d'obtenir mon jeu Java pour travailler dans un navigateur. J'ai réussi à réussi à le faire fonctionner comme une application Java Web Start, mais la conversion à une applet fenêtre dans le navigateur me rend fou.
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>
Dans mon fichier html:
<applet width="700" height="600" code="main.MainClass">
<param name="jnlp_href" value="MYAPPLET.jnlp">
</applet>
Je reçois cette erreur lors du chargement de la page:
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
Je l'ai changé la classe principale afin qu'il extends JApplet
au lieu de JFrame
mais à part que je ne sais pas quoi faire.
Et oui, j'ai lu http://docs.oracle. com / JavaSE / tutorial / déploiement / applet / deployingApplet.html et Google'd l'erreur.
La solution
The JNLP element should be:
<jnlp href="MYAPPLET.jnlp" codebase="http://www.myDomain.com/directoryContainingJar/">
or, since it would be more common to have the codebase 1st..
<jnlp codebase="http://www.myDomain.com/directoryContainingJar/" href="MYAPPLET.jnlp">
But make sure you validate the JNLP using JaNeLA. It can check a JNLP far better than I can by looking at it.
Autres conseils
This appears to be a bug in JDK version 1.6 update 14: http://www.canoo.com/jira/browse/UBA-8105. What JDK are you using? Try with a JDK 1.7.