Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: настройка Classpath
Форум программистов > Системное программирование > Java
vincent_vega
Написал небольшую утилитку которая при помощи 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
явных ошибок не видно.
попробуй убрать QTJava, джарники который лежат в ext и так на класспасе. точка тоже смущает, если уж надо для джарника текущую директорию положить на класспас то лучше прописать в манифесте.
да и вообще задавать класспасс через системную переменную считаю плохим тоном.
vincent_vega
Цитата(Kmet @ 17:07:2008, 16:46 ) *
явных ошибок не видно.
попробуй убрать QTJava, джарники который лежат в ext и так на класспасе. точка тоже смущает, если уж надо для джарника текущую директорию положить на класспас то лучше прописать в манифесте.
да и вообще задавать класспасс через системную переменную считаю плохим тоном.


Пробовал в classpath оставить только D:\Java\LIB\JDBC\ojdbc14.jar - эффекта не дало, ошибка всеравно есть
Если это плохой тон, то как сделать правильно?
Kmet
задавать при запуске
java -cp ......, манифесты...
vincent_vega
Нашел вот такое решение которое полностью удовлетворило все мои запросыsmile.gif
]]>http://www.eclipseplugincentral.com/Web_Li...nk-cid-302.html]]>
Kmet
это не решение, это полумера.
не уверен, что оракловская лицензия позволяет такое. да и поддерживать гораздо труднее....
vincent_vega
Цитата(Kmet @ 17:07:2008, 22:50 ) *
это не решение, это полумера.
не уверен, что оракловская лицензия позволяет такое. да и поддерживать гораздо труднее....


Для меня это сейчас подходящее оправданное решение, которое экономит мое время. Возможно оно и не вполне элегантно. Что значит не позволяет оракловская лицензия, разве на использование данных джарок есть какое либо ограничение?

В развитие темы, как всетаки мне правильнее поступить? У меня в приложении кроме данной джарки используется еще порядка 10 сторонних джар файлов. Как мне описать все это в манифесте? Если указывать относительный путь Class-path, то строка получается слишком длинной и эклипс отказывается создавать jar файл. Хотелось бы еще что бы не руками описывать все пути к файлам, а что бы эклипс сам это делал, но он не умеет (может есть какойто плагин?). Вызывать с ключем -cp мне как-то не очень удобно.
Kmet
Цитата(vincent_vega @ 17:07:2008 - 21:40) *
Что значит не позволяет оракловская лицензия, разве на использование данных джарок есть какое либо ограничение?


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.....


Цитата(vincent_vega @ 17:07:2008 - 21:40) *
а что бы эклипс сам это делал, но он не умеет (может есть какойто плагин?).

вроде и так умеет, но точно не помню, уже давно все собираю мавеном и другим советую
vincent_vega
Ну лицензия это не страшно, я пишу утилитку для использования внутри компании.
Цитата(Kmet @ 18:07:2008 - 11:34) *
у мэйна в манифесте Class-path: lib/1.jar lib/2.jar.....

Первоначально так и сделал, но наткнулся на то что при экспорте в jar файл эклипс ругнулся что эта строка слишком длинная.

Цитата(Kmet @ 18:07:2008 - 11:34) *
собираю мавеном


Что это?

p.s. я вообщето лотусист поэтому вопросв много
Kmet
Цитата(vincent_vega @ 18:07:2008 - 10:30) *
Первоначально так и сделал, но наткнулся на то что при экспорте в 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)
Вот и решение

Цитата(vincent_vega @ 18:07:2008 - 10:30) *
Что это?


]]>http://maven.apache.org/what-is-maven.html]]>
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.