Java игнорирует путь к классам

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

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

Работа с: java -jar test.jar

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

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

Ответ 1

При запуске с 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

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

-jar

...

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