2010-12-14 12 views
1

Ich versuche, ein Applet mit JNLP zu implementieren. Die Dateistruktur ist somit:So geben Sie Applet-Bibliotheken in der JNLP-Datei an

/ 
    dbstats.html 
    dbstats.jnlp 
    dbstats.jar 
    lib/ 
    substance.jar 
    trident.jar 
    guava-0.7.jar 

Hier ist mein HTML:

<html> 
    <head> 
     <title>Dreambearstatistieken</title> 

     <script src="http://www.java.com/js/deployJava.js"></script> 
     <script type="text/javascript"> 

      var attributes = { 
       code:'dreambear.stats.viewer.DBStatsViewer', 
       width:900, height:600 
      }; 
      var parameters = {jnlp_href: "dbstats.jnlp"}; 
      var version = "1.6"; 

     </script> 

    </head> 
    <body> 

    <script type="text/javascript"> 
     deployJava.runApplet(attributes, parameters, version); 
    </script> 

    </body> 
</html> 

Und die JNLP-Datei:

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="" href=""> 
    <information> 
     <title>Dreambearstatistieken</title> 
     <vendor>Weber</vendor> 
    </information> 
    <resources> 
     <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" /> 
     <jar href="lib/trident.jar" /> 
     <jar href="lib/substance.jar" /> 
     <jar href="lib/guava-r07.jar" /> 
     <jar href="dbstats.jar" main="true" /> 
    </resources> 
    <applet-desc 
     name="Dreambearstatistieken" 
     main-class="dreambear.stats.viewer.DBStatsViewer" 
     width="900" 
     height="600"> 
    </applet-desc> 
    <update check="background" /> 
</jnlp> 

Soweit ich sehen kann, ist alles in Ordnung sein sollte, aber es ist nicht. Ich bekomme eine ClassNotFoundException auf org.pushingpixels.substance.api.skin.SubstanceNebulaLookAndFeel, die in substance.jar ist. Was mache ich falsch?

Und weiter, gibt es ein gutes Tutorial oder Buch über die Verwendung von Applets und JNLP in den 2010er Jahren?

Antwort

1

Zuerst ist Ihre codebase leer. Soweit ich mich erinnere, sollte es den absoluten Pfad zu Ihrer Anwendung enthalten. Wahrscheinlich liege ich falsch, aber beginne damit. Wenn es hilft, aber Sie die jnlp-Datei wiederverwenden möchten, probieren Sie Codebase = "." (Obwohl ich nicht sicher bin, ob es legal ist.)

Als nächstes versuchen Sie, eine der Gläser unter lib-Verzeichnis mit Browser herunterladen. Es muss sichergestellt werden, dass dieses Verzeichnis zugänglich ist.

Viel Glück!

+0

Es arbeitet mit '.', aber nur, wenn ich das Zeug auf einen Server hochladen. Nicht wenn ich die html Datei lokal öffne. –

+0

Für ein eingebettetes JWS-Applet sagte Sun, das Codebase-Attribut vollständig zu entfernen (beachten Sie, dass es nicht dasselbe ist, als wenn es dort mit einem leeren Wert wäre). In diesem Fall wird angenommen, dass die Codebasis der Ort des Applet-HTML ist - wo auch immer die Applet-Seite, die sie einbettet. –

+0

Guter Punkt, Andrew. Das wusste ich nicht. Ich werde diese Methode beim nächsten Mal mit JNLP ausprobieren. – AlexR

0

Sie müssen auch den jlnp-Namen auf href="" setzen. Machen Sie es wie folgt aus:

<jnlp spec="1.0+" codebase="http://mydomain:5500/myapp" href="dbstats.jnlp"> 
Verwandte Themen