2015-02-18 5 views
0

java -jar myapp.jar включает ojdbc6.jar но бросает следующее исключениеJava -jar MyApp.jar включает ojdbc6.jar но бросает ClassNotFoundException

ClassNotFoundException: oracle.jdbc.driver.OracleDriver 

Ближайший пост я обнаружил, что работает для меня отображает это решение для отдельного класса:

C:\Project\bin>java -classpath .;ojdbc6.jar MyApp 

, но мне нужно создать файл jar для развертывания. Каждый раз, когда я создаю флягу, которая ссылается на, включает classpath для ojdbc6.jar, заканчивается тем же, что и ошибка. MyApp отлично работает в eclipse с ojdbc6.jar в папке Referenced Libraries проекта.

+0

ли баночка файл Oracle в той же папке MyApp.class файла? – vianna77

ответ

0

Если вы используете Maven, я бы предложил использовать теневой плагин для создания uber jar. http://maven.apache.org/plugins/maven-shade-plugin/

Таким образом, вы можете быть уверены, что не требуются библиотеки/файлы jar.

Если вы не можете/не хотите использовать Maven, пожалуйста, предоставьте всю трассировку стека, которую вы получите, чтобы помочь отладить проблему.

0

Добавить -verbose:class в командную строку, чтобы JVM показывал, какие классы загружаются. Если вы не видите oracle.jdbc.driver.OracleDriver, то ojdbc6.jar, вероятно, не найден.

0

Спасибо всем за ваши комментарии!

Это сработало: http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

шепнули на другие должности около опции -C не подходит для пути к классам в банке для других банках, а вынимают ссылку на ojdbc6.jar в создании банку заявление и использовать Class-Path в Manifest (без пробелов между строками - те были добавлены редактором стека):

Manifest-Version: 1,0

Main-Class: MYAPP

Class-Path: ojdbc6.jar

Создано-By: 1.7.0_71 (Oracle Corporation)

Теперь создать баночка заявление выглядит следующим образом:

банка CFM myJar.jar MANIFEST.MF MyApp.class Other1.class Other2.class Разное3. класс

с уважением, Chase

Смежные вопросы