Простой вопрос Classpath с использованием jars - PullRequest
2 голосов
/ 18 сентября 2010

У меня есть игрушечная программа, которая называется Test.class.Он обращается к классу в банке с именем myjar.jar.Этот jar находится в моей переменной CLASSPATH, установленной как часть моей среды Windows.Когда я набираю echo% CLASSPATH%, я вижу C: \ myclasses \ myjar.jar.Когда я выполняю свою программу Java Test

, она работает нормально.

Но если я упакую код в файл jar и попробую запустить

java -jar Test.jar

Это может не найти мой путь к классу.Я знаю, что у этого есть простое решение.

Можете ли вы помочь мне.

Ответы [ 2 ]

3 голосов
/ 18 сентября 2010

Если используется аргумент -jar (или -cp или -classpath), то %CLASSPATH% будет игнорироваться . Вместо этого будет использоваться запись Class-Path в файле JAR /META-INF/MANIFEST.MF. Вы хотели бы указать относительный JAR-путь к другому JAR-файлу. Э.Г.

Class-Path: myjar.jar

В приведенном выше примере ожидается, что myjar.jar находится в той же папке, что и файл JAR, который вы хотите выполнить.

Альтернативой является упаковка стороннего JAR-файла внутри вашего JAR-файла. Например, в Eclipse вы можете сделать это.

alt text

0 голосов
/ 18 сентября 2010

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

Далее я бы посоветовал изучить инструмент для сборки, такой как maven.

...