Проблема медленной загрузки при использовании Java-апплета нового поколения с технологией Webstart - PullRequest
1 голос
/ 30 декабря 2010

Я использую апплеты через технологию webstart, указанную в jnlp. Проблема в том, что когда апплет загружается, в какой-то момент он начинает загружаться очень медленно.

Вот вывод консоли java при загрузке, когда я говорю, что она становится медленнее:

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

Это пример того, как выглядит jnlp:

<?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>

Это jnlp моей игры, ее можно протестировать здесь .

Я пробовал разные браузеры на разных машинах в разных ОС, и проблема сохраняется.

Проблема, похоже, заключается в загрузке ресурсов изнутри ресурса, но происходит только при загрузке апплета, встроенного в браузер. Если я вызываю javaws из консоли, это работает без проблем.

У меня также есть другая игра, которая отлично работает, используя тот же шаблон jnlp здесь .

Ответы [ 2 ]

1 голос
/ 31 декабря 2010

Ничего себе.Это довольно большая загрузка банок.Я знаю, что вы упомянули, что он работает нормально, когда вы запускаете с консоли, но в целом вы можете рассмотреть возможность использования комбинации JarJar и Pack200 для создания одного, очень сжатого JAR,скачать намного быстрее, чем отдельные загрузки JAR.Недостатком является то, что одно обновление, опубликованное в одной библиотеке, потребует еще одной полной загрузки, которая с отдельными JAR-файлами не потребуется.

0 голосов
/ 24 апреля 2011

Попробуйте отключить параметр codebase_lookup .

...