2010-12-30 12 views
1

Ich verwende Applets über Webstart-Technologie, die von einem jnlp angegeben werden. Das Problem ist, wenn Applet geladen wird, irgendwann beginnt es wirklich langsam zu laden.Langsames Laden bei Verwendung von Java Applet der neuen Generation mit Webstart-Technologie

Hier ist eine Ausgabe von Java-Konsole beim Laden, wenn ich es langsamer werden sagen:

09:10:34.085 [Thread-15] INFO c.g.r.d.ClassPathDataSource - loading stream classpath://assets/images/ball_animation.png 
network: Conectando http://acoppes-laptop.local/prototipos/discoverthename-latest/resources-0.0.1-SNAPSHOT.jar con proxy=DIRECT 
09:10:34.099 [Thread-15] INFO c.g.r.d.ClassPathDataSource - loading stream classpath://assets/images/block_crack_animation.png 
network: Conectando http://acoppes-laptop.local/prototipos/discoverthename-latest/resources-0.0.1-SNAPSHOT.jar con proxy=DIRECT 
09:10:34.107 [Thread-15] INFO c.g.r.d.ClassPathDataSource - loading stream classpath://assets/images/block_crack_animation.png 
network: Conectando http://acoppes-laptop.local/prototipos/discoverthename-latest/resources-0.0.1-SNAPSHOT.jar con proxy=DIRECT 
09:10:34.115 [Thread-15] INFO c.g.r.d.ClassPathDataSource - loading stream classpath://assets/images/block_crack_animation.png 
network: Conectando http://acoppes-laptop.local/prototipos/discoverthename-latest/resources-0.0.1-SNAPSHOT.jar con proxy=DIRECT 
09:10:34.125 [Thread-15] INFO c.g.r.d.ClassPathDataSource - loading stream classpath://assets/images/block_crack_animation.png 
network: Conectando http://acoppes-laptop.local/prototipos/discoverthename-latest/resources-0.0.1-SNAPSHOT.jar con proxy=DIRECT 
09:10:34.134 [Thread-15] INFO c.g.r.d.ClassPathDataSource - loading stream classpath://assets/images/block_crack_animation.png 
network: Conectando http://acoppes-laptop.local/prototipos/discoverthename-latest/resources-0.0.1-SNAPSHOT.jar con proxy=DIRECT 

Dies ist ein Beispiel dafür, wie jnlp aussieht:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" 
    codebase="http://www.gemserk.com/prototipos/discoverthename-release/" 
    href="launch-applet.jnlp"> 
    <information> 
     <title>Discover The Name - Ludum Dare 19</title> 
     <vendor>Gemserk</vendor> 
     <homepage href="http://www.gemserk.com" /> 
     <description>arielsan's game entry for Ludum Dare 19</description> 
     <offline-allowed /> 
    </information> 
    <security> 
     <all-permissions /> 
    </security> 
    <resources> 
     <j2se version="1.6+" /> 
     <jar href="main-0.0.1-SNAPSHOT.jar" /> 
     <jar href="resources-0.0.1-SNAPSHOT.jar" /> 
     <jar href="game-0.0.1-SNAPSHOT.jar" /> 
     <jar href="logback-classic-0.9.17.jar" /> 
     <jar href="logback-core-0.9.17.jar" /> 
     <jar href="slf4j-api-1.5.8.jar" /> 
     <jar href="core-0.0.9-SNAPSHOT.jar" /> 
     <jar href="google-collections-1.0.jar" /> 
     <jar href="commons-io-1.4.jar" /> 
     <jar href="guice-2.0.jar" /> 
     <jar href="aopalliance-1.0.jar" /> 
     <jar href="cglib-2.2.jar" /> 
     <jar href="asm-3.1.jar" /> 
     <jar href="resourcesmanager-core-0.0.9-SNAPSHOT.jar" /> 
     <jar href="commons-0.0.9-SNAPSHOT.jar" /> 
     <jar href="slickmodule-0.0.9-SNAPSHOT.jar" /> 
     <jar href="slick-274.jar" /> 
     <jar href="jnlp-1.2.jar" /> 
     <jar href="lwjgl-2.6.0-GEMSERK.jar" /> 
     <jar href="jinput-2.6.0-GEMSERK.jar" /> 
     <jar href="resourcesmanager-slickmodule-0.0.9-SNAPSHOT.jar" /> 
     <jar href="animation-0.0.2-SNAPSHOT.jar" /> 
     <jar href="vecmath-1.3.1.jar" /> 
    </resources> 

    <resources os="Windows"> 
     <nativelib href="lwjgl-2.6.0-GEMSERK-natives-win.jar" /> 
     <nativelib href="jinput-2.6.0-GEMSERK-natives-win.jar" /> 
    </resources> 

    <resources os="Linux"> 
     <nativelib href="lwjgl-2.6.0-GEMSERK-natives-linux.jar" /> 
     <nativelib href="jinput-2.6.0-GEMSERK-natives-linux.jar" /> 
    </resources> 

    <resources os="Mac OS"> 
     <nativelib href="lwjgl-2.6.0-GEMSERK-natives-mac.jar" /> 
     <nativelib href="jinput-2.6.0-GEMSERK-natives-mac.jar" /> 
    </resources> 

    <applet-desc name="arielsan's game entry for Ludum Dare 19" 
     main-class="org.newdawn.slick.AppletGameContainer" width="800" height="600"> 
     <param name="game" value="com.gemserk.games.discoverthename.Game" /> 
    </applet-desc> 

</jnlp> 

Das ist ein jnlp von ist mein Spiel, könnte es here getestet werden.

Ich habe verschiedene Browser auf verschiedenen Computern auf verschiedenen Betriebssystemen ausprobiert, und das Problem besteht fort.

Das Problem scheint beim Laden von Assets aus einer Ressource zu sein, geschieht aber nur beim Laden des Applet im Browser eingebettet, wenn ich Javaws von der Konsole aufrufen, funktioniert es ohne Probleme.

Ich habe auch ein anderes Spiel funktioniert gut, mit der gleichen jnlp Vorlage here.

+0

Ich benutze Logback für die Protokollierung, fand ich, wenn ich die logback.xml (zum Konfigurieren der Appender, etc) das Applet lädt schnell. Es ist eine erste Problemumgehung, aber ich möchte wissen, warum dies genau passiert. – arielsan

Antwort

1

Wow. Das ist ein ziemlich großer Download von Gläsern. Ich weiß, dass Sie erwähnt haben, dass es funktioniert, wenn Sie von der Konsole aus starten, aber im Allgemeinen könnten Sie eine Kombination aus JarJar und Pack200 verwenden, um ein einzelnes, hochkomprimiertes JAR zu erstellen, das viel schneller als separate JAR-Downloads heruntergeladen werden sollte. Der Nachteil besteht darin, dass ein einzelnes Update, das in einer Bibliothek veröffentlicht wird, einen weiteren vollständigen Download erfordert, was mit separaten JARs nicht erforderlich wäre.

+0

Danke für den Rat, aber das ist jetzt nicht das Problem, versuche das zweite Spiel, das ich gepostet habe, es funktioniert super, lade schnell usw., alle Spiele benutzen pack200. Das Problem ist beim ersten, es wird beim Laden sehr langsam und es basiert auf der gleichen Vorlage, die das zweite verwendet, aber nur wenn du es als Applet spielst, wenn du den Webstart ausprobierst, funktioniert es auch großartig. – arielsan

+0

Ruft die Applet-Sandbox eine zusätzliche Jar-Verifizierung auf, die Webstart nicht unterstützt? – Nicholas

+0

Ich habe diesen Link (http://blog.gemserk.com/games/discover-the-way/play/) getestet, nachdem ich den Cache geleert habe und das Applet ziemlich schnell geladen wurde. (Ubuntu 8.1/64, Chrome Browser und Java 1.6_14). Aber das ist alles relativ. Wenn es nützlich ist, kann ich Ihnen das Java-Konsolenprotokoll senden. Eine andere Sache, die mir auffiel, ist, dass es hilfreich sein könnte, im Applet def anzugeben. (Shot in the dark) – Nicholas