Приложения Java Web Start неоднократно запрашивают несуществующие файлы - PullRequest
1 голос
/ 07 августа 2010

Все мои приложения, которые я делаю с помощью NetBeans в качестве приложений Java Web Start, ведут себя довольно странно. Когда я запускаю их как обычное приложение, все работает.

Но когда я компилирую их как приложения запуска Java, они, после запуска веб-запуска Java, выполняются с загрузкой, несколько раз запрашивают у сервера библиотеки в неправильном месте. В небольших проектах это, похоже, не имеет значения, но в больших проектах это огромная разница во времени (см. Мой первый вопрос).

Я поместил простой проект NetBeans здесь . Это должно нарисовать окно с кнопкой, которая ничего не делает вообще. (если вы пытаетесь положить его куда-нибудь, загрузите куда-нибудь папку dist и отредактируйте файл .jnlp)

Вы можете видеть из журналов (в файле logs.txt), что библиотеки сначала нормально загружаются из /awindow_dist/lib/, но затем приходит много запросов в неправильное место, /awindow_dist/. Что может быть не так? Кажется, все настроено нормально.

Это ошибка NetBeans? Ошибка WebStart? Или моя вина как-то?

1 Ответ

1 голос
/ 08 августа 2010

ОК, это определенно ошибка в NetBeans, очень вероятно в файле build.xml, созданном NB.

Я немного потерялся в гигантских файлах build.xml, build-impl.xml и jnlp-impl.xml, но мой грязный обходной путь для Java Web Start для работы в NetBeans:

  1. скопируйте сгенерированный JNLP куда-нибудь, потому что это нормально
  2. выключить выключить JWS в проекте NetBeans
  3. вместо того, чтобы разрешать NetBeans подписывать файлы .jar, писать такой сценарий оболочки, как этот

    ant clean
    ant jar 
    #because these two works fine
    
    for i in `ls dist/*.jar; ls dist/lib/*.jar`
    do
       jarsigner -storepass mystorepass -keypass mykeypass $i myname
       #sign all the .jars
    done
    
    cp launch.jnlp dist/launch.jnlp 
    #copy the .jnlp
    
  4. сделать скрипт целью в build.xml, как this

Готово. Это грязный хак и работает только с bash, потому что я не знаю, как работает ant + файлы сборки, сгенерированные netbeans, действительно сложны. Но это делает работу.

...