Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Stratovarius в Jan 15, 2008, 02:44



Титла: Проблемче *най - вероятно с classpath
Публикувано от: Stratovarius в Jan 15, 2008, 02:44
Следния проблем:

[strato@darkstar /usr/home/strato/test]$ java -jar Tadmin.jar
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

,но

[strato@darkstar /usr/home/strato/test]$ ls -l
total 708
-rw-r--r--  1 strato  strato  184112 Jan 15 00:37 Tadmin.jar
-rw-r--r--  1 strato  strato  512707 Jan 15 00:43 mysql-connector-java-5.0.5-bin.jar

и

[strato@darkstar /usr/home/strato/test]$ java -cp . -jar Tadmin.jar
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

От Еклипс като стартирам работи, значи проблема е с CLASSPATH, но след като mysql-connector е в същата директория и стартирам с опция -cp . би трябвало да погледне там или не ?


Титла: Проблемче *най - вероятно с classpath
Публикувано от: romeo_ninov в Jan 15, 2008, 07:23
Пробвай
Примерен код

export CLASSPATH=$CLASSPATH:`pwd`

и след това
Примерен код

java -jar Tadmin.jar


Титла: Проблемче *най - вероятно с classpath
Публикувано от: Stratovarius в Jan 15, 2008, 07:30
[strato@darkstar /usr/home/strato/test]$ echo $CLASSPATH
:/usr/home/strato:/usr/home/strato/test
[strato@darkstar /usr/home/strato/test]$ java -jar Tadmin.jar
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver


Титла: Проблемче *най - вероятно с classpath
Публикувано от: Stratovarius в Jan 15, 2008, 07:34
Пробвах на различни машини.
На Windows, BSD, Linux, OSX

Навсякъде уж пътеките са правилни, за по сигурно паквам драивера в същата директория и изпълнявам с java -cp .
Но въпреки това никъде не се стартира. От еклипс върви, така, че не е от кода.


Титла: Проблемче *най - вероятно с classpath
Публикувано от: Hapkoc в Jan 15, 2008, 08:56
java -cp ./mysql-connector-java-5.0.5-bin.jar -jar Tadmin.jar

или пък

java -cp ./mysql-connector-java-5.0.5-bin.jar:./Tadmin.jar -jar Tadmin.jar

Честно казано не съм сигурен кое от двете е. Може би и двете ще работят.


Титла: Проблемче *най - вероятно с classpath
Публикувано от: akurtakov в Jan 15, 2008, 09:41
Когато използваш jar опцията cp се игнорира, тъи като би триабвало да е специфициран клас пътя във Manifest.MF файла.
Твоята команда триабва да стане:
java -cp . classname

Като classname триабва да го замениш със стоиността на атрибута Main-Class от файла META-INF/MANIFEST.MF вътре в jar-a.


Титла: Проблемче *най - вероятно с classpath
Публикувано от: Hapkoc в Jan 15, 2008, 11:39
akurtakov, и си прав, и не си.

За -cp и -jar опциите си напълно прав, това го научавам от теб, мерси. :)

Иначе с java -cp . classname няма да стане. Трябва да е нещо от рода:

java -cp ./mysql-connector-java-5.0.5-bin.jar:./Tadmin.jar classname

Май.


Титла: Проблемче *най - вероятно с classpath
Публикувано от: Nikolavp в Jan 15, 2008, 15:55
Хмм би трябвало да работи със сетнато CLASSPATH... Можеш ли да дадеш малко код ако не е конфиденциален разбира се :). При правилна променлива за CLASSPATH-a и описан главен клас в Manifest файла трябва да бачка :).


Титла: Проблемче *най - вероятно с classpath
Публикувано от: rpetrov в Jan 16, 2008, 00:21
и в крайна сметка пробва ли с CLASSPATH, който съдържа пълните (абсолютните ) имена на необходимите jar{|zip}-файлове ?


Титла: Проблемче *най - вероятно с classpath
Публикувано от: Stratovarius в Jan 16, 2008, 08:52
Manifest-Version: 1.0
Main-Class: guiProjekteVerwaltung.Tadmin
Class-Path: lib/mysql-connector-java-5.0.5-bin.jar

Много благодаря за помощта :) Работи

akurtakov, имаш бутилка Daniels от мен :)