Как предоставить путь к классу для внешнего JAR через Java Web Start - PullRequest
2 голосов
/ 11 августа 2011

Я делаю небольшой интерфейс для консольного приложения, и поэтому я выполняю консольное приложение, а затем запускаю команды через командную строку.

Моя проблема в том, что JAR, который яДля выполнения необходимо указать путь к библиотеке JAR.Однако я не знаю, как правильно передать эту информацию.Согласно информации, найденной в Синтаксис файла JNLP , я должен добавить все внешние JAR-файлы к пути JAR в моем файле JNLP.

Этот файл выглядит следующим образом:

<resources>
    <j2se version="1.5+"/>
    <jar href="uToolGUI.jar" main="true"/>
    <jar href="uTool.jar"/>
    <jar href="jpcap.jar"/>
</resources>

Строка, которую я сейчас выполняю, такова:

java.exe -cp lib\jpcap.jar;. -jar D:\jarCreateLib\uTool.jar gen

Итак, я думаю, что вопрос сводится к тому, как я обращаюсь к моей разыскиваемой библиотеке таким образом, чтобыWeb Start позволит мне сделать это.

Это работает как шарм, когда выполняется через Eclipse.Если мне нужно запустить его через java -jar..., я должен добавить в -Djnlp.java.library.path=lib, однако это не имеет значения, когда я пытаюсь выполнить его через Java Web Start.

Заранее благодарим за любые ответы на все вопросы.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Команда java -jar … использует Class-Path, найденный в манифесте, а не пути, указанные в параметре -cp.Как предлагается здесь , вам нужна запись манифеста, такая как:

Class-Path: lib/uToolGUI.jar lib/uTool.jar lib/jpcap.jar

Как отмечено в Синтаксис файла JNLP , main-class атрибут в файле JNLP может быть опущен, если первый файл JAR, указанный в файле JNLP, можно найти из записи манифеста Main-Class в файле JAR.

1 голос
/ 11 августа 2011

Фрагмент JNLP предполагает, что файлы Jar находятся в том же (безымянном) каталоге - базе кода, тогда как вызов командной строки указывает на один в каталоге lib, а другой на jarCreateLib.

Я настоятельно рекомендую вам проверить JNLP с JaNeLA . Он проверяет, что ресурсы, объявленные в JNLP, доступны относительно указанной кодовой базы.

...