настройка Classpath

02.04.2005
170
1
#1
Написал небольшую утилитку которая при помощи jdbc подключается к oracle и выводит некоторые какие значения. В eclipse все работает замечательно. Сделал jar файл он запускается, но при подключении к oracle выдает ошибку
Код:
java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
ошибка вот в этой строке
Код:
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
т.е. не находит ojdbc14.jar
Теперь пытаюсь настроить CLASSPATH (win xp) в системных переменных добавил
Код:
.;C:\Program Files\Java\jre1.6.0_01\lib\ext\QTJava.zip;D:\Java\LIB\JDBC\ojdbc14.jar
Перегрузился, но эффекта никакого, ошибка таже самая.
Как мне настроить classpath что бы приложения видили сторонние библиотеки?
 

Kmet

Java Team
25.05.2006
1 036
8
#2
явных ошибок не видно.
попробуй убрать QTJava, джарники который лежат в ext и так на класспасе. точка тоже смущает, если уж надо для джарника текущую директорию положить на класспас то лучше прописать в манифесте.
да и вообще задавать класспасс через системную переменную считаю плохим тоном.
 
02.04.2005
170
1
#3
явных ошибок не видно.
попробуй убрать QTJava, джарники который лежат в ext и так на класспасе. точка тоже смущает, если уж надо для джарника текущую директорию положить на класспас то лучше прописать в манифесте.
да и вообще задавать класспасс через системную переменную считаю плохим тоном.
Пробовал в classpath оставить только D:\Java\LIB\JDBC\ojdbc14.jar - эффекта не дало, ошибка всеравно есть
Если это плохой тон, то как сделать правильно?
 

Kmet

Java Team
25.05.2006
1 036
8
#6
это не решение, это полумера.
не уверен, что оракловская лицензия позволяет такое. да и поддерживать гораздо труднее....
 
02.04.2005
170
1
#7
это не решение, это полумера.
не уверен, что оракловская лицензия позволяет такое. да и поддерживать гораздо труднее....
Для меня это сейчас подходящее оправданное решение, которое экономит мое время. Возможно оно и не вполне элегантно. Что значит не позволяет оракловская лицензия, разве на использование данных джарок есть какое либо ограничение?

В развитие темы, как всетаки мне правильнее поступить? У меня в приложении кроме данной джарки используется еще порядка 10 сторонних джар файлов. Как мне описать все это в манифесте? Если указывать относительный путь Class-path, то строка получается слишком длинной и эклипс отказывается создавать jar файл. Хотелось бы еще что бы не руками описывать все пути к файлам, а что бы эклипс сам это делал, но он не умеет (может есть какойто плагин?). Вызывать с ключем -cp мне как-то не очень удобно.
 

Kmet

Java Team
25.05.2006
1 036
8
#8
Что значит не позволяет оракловская лицензия, разве на использование данных джарок есть какое либо ограничение?
You may not:
- use the programs for any purpose other than as provided above;
- distribute the programs unless accompanied with your applications;
- charge your end users for use of the programs;
- remove or modify any program markings or any notice of our proprietary rights;
- use the programs to provide third party training on the content and/or functionality of the programs, except for training your licensed users;
- assign this agreement or give the programs, program access or an interest in the programs to any individual or entity except as provided under this agreement;
- cause or permit reverse engineering (unless required by law for interoperability), disassembly or decompilation of the programs;
- disclose results of any program benchmark tests without our prior consent.




в спеках по jar никаких ограничений на длину не видел.

я бы создал такую стурктуру

./lib
1.jar
2.jar
3.jar
4.jar
./
main.jar

у мэйна в манифесте Class-path: lib/1.jar lib/2.jar.....


а что бы эклипс сам это делал, но он не умеет (может есть какойто плагин?).
вроде и так умеет, но точно не помню, уже давно все собираю мавеном и другим советую
 
02.04.2005
170
1
#9
Ну лицензия это не страшно, я пишу утилитку для использования внутри компании.
у мэйна в манифесте Class-path: lib/1.jar lib/2.jar.....
Первоначально так и сделал, но наткнулся на то что при экспорте в jar файл эклипс ругнулся что эта строка слишком длинная.

Что это?

p.s. я вообщето лотусист поэтому вопросв много
 

Kmet

Java Team
25.05.2006
1 036
8
#10
Первоначально так и сделал, но наткнулся на то что при экспорте в jar файл эклипс ругнулся что эта строка слишком длинная.
No line may be longer than 72 bytes (not characters), in its UTF8-encoded form. If a value would make the initial line longer than this, it should be continued on extra lines (each starting with a single SPACE). (http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html)
Вот и решение

http://maven.apache.org/what-is-maven.html