2013-08-12 8 views
-1

Я создал небольшое Java-приложение, которое подключается к MySQL. Я тестировал его на своей локальной машине, и он работал нормально. Я экспортировал проект Java в файл Runnable jar с помощью Eclipse.java.lang.ClassNotFoundException: com.mysql.jdbc.Driver в файле jar для Ubuntu

Я скопировал файл фляги на моем сервере Ubuntu 12,04 и запустил его с помощью команды

java -jar server.jar 

и бросил ошибку:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 

Я понимаю, что этот класс не может быть найден на сервере. Затем - как установить этот драйвер?

У меня есть все, что в папке/tvplan/ есть server.jar файл, который экспортируется в Runnable баночка также есть папка Lib, которая держит MySQL-разъем-java.jar и libintl.jar (как я получил с помощью Sudo APT-получить установку libmysql-Java , но когда я бегу Java -cp "Библиотека/MySQL-разъем-java.jar; server.jar" Server Б.Т. он выдает мне ошибку ошибка: не удалось найти или загрузить main class Server

+0

Копирование JJBC Mysql в тот же каталог должно работать на вас. – Marcelo

+0

Это запущенный файл jar, не вижу, как это может быть веб-приложение @LuiggiMendoza. – Marcelo

+0

@Marcelo не видел команду 'java -jar ...' –

ответ

-1

Используйте опцию cpjava, чтобы поместить драйвер jdbc MySQL в путь к классам, например:

java -cp ".;lib/mysql-connector-java-version-bin.jar;server.jar" package.Server

если драйвер JDBC находится под lib каталога и заменить package.Server с полным именем основного класса.

+0

-cp не работает с -jar. – Xabster

+0

@ Xabster Спасибо, я его отредактировал – Katona

+0

Так это должно сработать? Это sais Ошибка: не удалось найти или загрузить пакет основного класса. Сервер – LokoTerrorita

1

Если вы используете файл jar, файл jar должен включать в манифест строку класса. Строка указывает библиотеки/класс для включения. Ваша банка либо не делает этого вообще, либо имеет неправильную ссылку.

Откройте банку с помощью программы unzip и откройте файл манифеста, чтобы узнать, какая проблема.

Я подозреваю, что вы использовали возможность Eclipse включать библиотеки (но не извлекать или переупаковывать их), и поэтому они помещаются в папку за пределами файла jar, и эта папка отсутствует на машине linux. Есть 3 варианта для экспортера Eclipse относительно обработки библиотеки, первые 2 будут создавать автономный Jar. Первый вариант нарушит лицензионное соглашение на соединителе mysql, но второй не будет. Третий будет помещать библиотеки в папку, которую вам нужно скопировать вместе с банкой, которую вы создали.

+0

Я не могу открыть файл jar с утилитой архива (я нахожусь на MacOS). И когда я экспортировал с Eclipse, там был только файл jar, ни у filders ничего не было. Можете ли вы предоставить пошаговое решение? – LokoTerrorita

+0

Либо 1) Получите «unarchiver» из магазина приложений, чтобы разблокировать файл jar. Затем посмотрите, какая у вас проблема, или 2) Экспортируйте файл jar с помощью 1-й опции для обработки библиотеки. – Xabster

Смежные вопросы