Попробуйте, как я мог бы, я не могу заставить файл JNLP работать локально (через двойной щелчок). Это, кажется, проблема определения местоположения файла банки, даже когда я определяю его относительно jnlp файла. Я получаю следующую ошибку:
Поле <банка> href имеет недопустимое значение: helloworld.jar
Это происходит, даже когда файл JNLP находится в той же папке как helloworld.jar. Я сделал поиски, и это - последовательная проблема специально для людей, которые хотят упаковать приложение на CD и использовать JNLP. Единственным обеспеченным Sun "решением" является способность определить кодовую базу через командную строку, но это действительно не помогает многому. Я не понимаю, почему они не принимают или позволяют кодовой базе "быть" или "file://". - Я попробовал эти виды вещей в параметре кодовой базы тега jnlp (в файле), и ничто не работало.
Чрезвычайно удобно для меня использовать файл JNLP, потому что я не должен волноваться об обнаружении платформы, собственных библиотеках или даже основных файлах банки JOGL; я просто включаю эту строку, и все сделано для меня:
<extension name="JOGL" href="http://download.java.net/media/jogl/builds/archive/jsr-231-2.0-beta10/webstart/jogl-all-awt.jnlp" />
Я надеюсь найти что-то, что может сделать тот же вид вещи. В противном случае я могу вручную (или с Муравьем) захватывают файлы банки JOGL, это не имеет большого значения; только одна из тех вещей, которые JNLP делает для меня и я действительно собираюсь отсутствовать.
Что лучшее альтернативно в файлы JNLP, чтобы я использовал локально (т.е. дважды щелкните для выполнения)? Там что-нибудь так изящно, или я должен просто записать сценарий оболочки для Linux, пакетный файл для Windows, и иметь Муравья, обнаруживают и загружают соответствующие банки JOGL?
Я использовал такой файл .jnlp для локального запуска программного обеспечения Java Web Start
укажите базу кода следующим образом:
список ресурсов с относительными путями:
и, наконец, сообщить Web Start, где он может найти точку входа в программное обеспечение внутри jar-файла, отмеченного main = "true"
:
Единственное, что вам нужно изменить при удаленном развертывании, - это параметр кодовой базы.
] Используйте манифест для вашей банки. Там вы можете определить основной класс для запуска и необходимые библиотеки. См. аргументы Main Class и Class-path в спецификации манифеста [
].Система JNLP была улучшена с помощью обновления 10 Java 6 (некоторое время назад), но ее все еще довольно сложно отлаживать (включить полную трассировку в консоли Java и пройтись по исходному коду javaws.
В вашей ситуации я бы потратил лишнюю милю и заставил бы его работать. Может быть, вы предоставите полный JNLP-файл, показывающий проблему?
.JNLP предназначен для запуска сети (специфически http (ы)) и без сети реализация Java должна быть действительно запутанной. Даже зрелые проекты, такие как затмение палка с вариантом .sh, .bat.