Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как запустить с библиотекой? как запустить jar в linux с lib/ 
:(
    Опции темы
Su_
  Дата 11.11.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Добрый день!
Встал странный вопрос , как в линуксе(mandriva) запустить java проект который использует mysql-connector-java который лежит в папочке /lib/?

По логике ,как то так:
Код

java -jar mytest.jar -lib "/lib/mysql-connector-java.jar"

Но как я понял ,надо как то через CLASSPATH, но эксперименты не привели пока к успеху. Подскажите синтаксис пожалуйста!)


--------------------
user posted image

PM MAIL WWW   Вверх
Kircul
Дата 11.11.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 20.2.2007

Репутация: 6
Всего: 7



Опция -cp. Читать тут. И вместе с опцией -jar помоему не работает, надо сделать так:
Код

java -cp "/lib/mysql-connector-java.jar:./mytest.jar" my.test.MainClass

Либо в manifest файле прописать classpath. Читать тут.

Это сообщение отредактировал(а) Kircul - 11.11.2010, 15:50
PM   Вверх
Su_
Дата 11.11.2010, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Код

в Linux:
java -classpath lib/ test.jar


Но почему-то не работает
пишет:
Код

Exception in thread "main" java.lang.noClassDefFoundError



--------------------
user posted image

PM MAIL WWW   Вверх
Kircul
Дата 11.11.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 20.2.2007

Репутация: 6
Всего: 7



Не только в линуксе не работает, это корректное поведение. См. отредактированный предыдущий пост.

Добавлено через 7 минут и 30 секунд
Ну и в дополнение пример manifest файла для standalone приложения (как я обычно собираю):
Код

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: kircul
Build-Jdk: 1.6.0_21
Main-Class: my.application.App
Class-Path: lib/commons-httpclient-3.1.jar lib/commons-logging-1.0.4.j
 ar lib/commons-codec-1.2.jar

папка lib лежит в одной директории вместе с основным jar'ом. При желании можно сделать симлинк на jar из /lib.

Это сообщение отредактировал(а) Kircul - 11.11.2010, 15:54
PM   Вверх
Su_
Дата 11.11.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



в манифесте прописан
Код

Manifest-Version: 1.0

Ant-Version: Apache Ant 1.8.0

Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.)

Main-Class: catchevent.Main

Class-Path: lib/mysql-connector-java-5.1.13-bin.jar

X-COMMENT: Main-Class will be added automatically by build




если через командную строку
Код

java -cp "lib/mysql-connector-java-5.1.13-bin.jar:./CatchEvent.jar" catchevent.Main


Запускает, но библиотеку не цепляет. ибо выводит то же самое что "java -jar CatchEvent.jar"




--------------------
user posted image

PM MAIL WWW   Вверх
Kircul
Дата 11.11.2010, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 20.2.2007

Репутация: 6
Всего: 7



Еще раз
Код

Class-Path: lib/mysql-connector-java-5.1.13-bin.jar

означает что рядом с CatchEvent.jar фалом лежит директория lib с mysql-connector-java-5.1.13-bin.jar. В вашем случае директория lib находится в корне, если я правильно понял. Значит делать надо так.
Код

Class-Path: /lib/mysql-connector-java-5.1.13-bin.jar

либо так 
Код

java -cp "/lib/mysql-connector-java-5.1.13-bin.jar:./CatchEvent.jar" catchevent.Main

PM   Вверх
Su_
Дата 11.11.2010, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Не совсем, папка lib лежит рядом с .jar_ом
Код


[root@localhost cathEvent]# ls
CatchEvent.jar  lib/
[root@localhost cathEvent]# ls lib
mysql-connector-java-5.1.13-bin.jar


и манифесте прописанно верно
Код

Class-Path: lib/mysql-connector-java-5.1.13-bin.jar


Мне начинает казаться что глючит код, или может версия самой библиотеки.
Так то всё верно?

А вылетает она когда не может взять данные из базы, а они там есть => он не может к ней подсоединиться. Вопрос почему)

по поводу самой библиотеке написанно что она независимая от платформ(Architecture Independent)

Это сообщение отредактировал(а) Su_ - 11.11.2010, 16:19


--------------------
user posted image

PM MAIL WWW   Вверх
Kircul
Дата 11.11.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 20.2.2007

Репутация: 6
Всего: 7



Если у вас до сих пор вылетает NoClassDefFoundError, то дайте полный стэктрейс, если нет, то и проблеммы с которой начали нету.
PM   Вверх
Su_
Дата 11.11.2010, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



извиняюсь, мне надо посмотреть исходини дома. Может быть проблема в логин/пароль , точнее в их Регистре. 
Как приеду отпишусь.  Спасибо за помощь ,хоть понял как ручками компилировать в linux)


--------------------
user posted image

PM MAIL WWW   Вверх
Skipy
Дата 12.11.2010, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16





--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
Su_
Дата 12.11.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Спасибо всем, походу проблема в другом.
Драйвер подцепляет корректно, а вот к базе подключатся не хочет, хотя через phpmyadmin все работет.
Выбрасывает исключение :
Код

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Почитал про эту ошибку , народ пишет что смена ОС помогает. На Мандриве 2009 такой баг был,и народ таблетку не нашел.


Наверное можно капать откуда она вылезает, но это тема не этого топика. Посему попробую пересесть на другую ОС. достала меня Мандрива, много с ней проблем(

Всем спасибо! smile 


--------------------
user posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1350 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.