настройка Classpath

Тема в разделе "Java", создана пользователем vincent_vega, 17 июл 2008.

  1. vincent_vega

    vincent_vega Lotus team
    Lotus team

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    явных ошибок не видно.
    попробуй убрать QTJava, джарники который лежат в ext и так на класспасе. точка тоже смущает, если уж надо для джарника текущую директорию положить на класспас то лучше прописать в манифесте.
    да и вообще задавать класспасс через системную переменную считаю плохим тоном.
     
  3. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Пробовал в classpath оставить только D:\Java\LIB\JDBC\ojdbc14.jar - эффекта не дало, ошибка всеравно есть
    Если это плохой тон, то как сделать правильно?
     
  4. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    задавать при запуске
    java -cp ......, манифесты...
     
  5. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
  6. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    это не решение, это полумера.
    не уверен, что оракловская лицензия позволяет такое. да и поддерживать гораздо труднее....
     
  7. vincent_vega

    vincent_vega Lotus team
    Lotus team

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

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    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.....


    вроде и так умеет, но точно не помню, уже давно все собираю мавеном и другим советую
     
  9. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Ну лицензия это не страшно, я пишу утилитку для использования внутри компании.
    Первоначально так и сделал, но наткнулся на то что при экспорте в jar файл эклипс ругнулся что эта строка слишком длинная.

    Что это?

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    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
     
Загрузка...

Поделиться этой страницей