2010-12-14 4 views
1

Я пытаюсь развернуть апплет с помощью JNLP. Структура файла таким образом:Как указать библиотеки апплетов в файле JNLP

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

Вот мой 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> 

И файл JNLP:

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

Насколько я могу видеть, что все должно быть в порядке, но это не. Я получаю ClassNotFoundException на org.pushingpixels.substance.api.skin.SubstanceNebulaLookAndFeel, что находится в substance.jar. Что я делаю не так?

И шире, есть ли хороший учебник или книга об использовании апплетов и JNLP в 2010-м?

ответ

1

Сначала ваш codebase пуст. Насколько я помню, он должен содержать абсолютный путь к вашему приложению. Наверное, я ошибаюсь, но начинаю с этого. Если это помогает, но вы хотите повторно использовать файл jnlp, попробуйте codebase = "." (хотя я не уверен, что это законно.)

Затем попробуйте загрузить одну из банок под каталогом lib с помощью браузера. Необходимо убедиться, что этот каталог доступен.

Удачи вам!

+0

Он работает с '.', но только если я загружу материал на сервер. Нет, если я открываю html-файл локально. –

+0

Для встроенного JWS-апплета Sun сказал, что полностью удаляет атрибут codebase (обратите внимание, что это не то же самое, что наличие там с пустым значением). В этом случае предполагается, что кодовая база является местоположением HTML-апплета - везде, где происходит его аппликация. –

+0

Хорошая точка, Андрей. Я не знал этого. Я попробую этот метод в следующий раз, когда я буду развивать с помощью JNLP. – AlexR

0

Вы должны поставить jlnp на href="". Сделайте это вот так:

<jnlp spec="1.0+" codebase="http://mydomain:5500/myapp" href="dbstats.jnlp"> 
Смежные вопросы