Java игнорирует путь к классам - PullRequest
11 голосов
/ 02 мая 2011

Я пишу Java-программу, которая использует драйвер Oracle JDBC. Я установил это в моем classpath. Когда я запускаю программу внутри своей IDE (добавленной как jdbc как библиотека), программа работает нормально. Когда я пытаюсь развернуть его, он полностью игнорирует листинг в classpath и выдает мне NoClassDefFoundError.

Я хочу использовать драйвер JDBC клиента (тот, который установлен), а не свой собственный. Я упаковываю программу из JDeveloper, развертывание в виде файла JAR.

Запуск с: java -jar test.jar

Когда я помещаю библиотеку в% JAVA_HOME% / lib / ext, она работает правильно.

Кто-нибудь знает, как решить эту проблему?

1 Ответ

26 голосов
/ 02 мая 2011

При запуске с java -jar путь к классу игнорируется.

Необходимо использовать свойство манифеста Class-Path.

С http://download.oracle.com/javase/tutorial/deployment/jar/downman.html

Вы указываете классы для включения в поле заголовка Class-Path в файле манифеста апплета или приложения.Заголовок Class-Path имеет следующий вид:

Class-Path: jar1-name jar2-name directory-name/jar3-name

From http://download.oracle.com/javase/1.4.2/docs/tooldocs/linux/java.html

-jar

...

Когда вы используете эту опцию, файл JAR является источником всех пользовательских классов, а другие параметры пути к классам пользователей игнорируются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...