2014-01-08 4 views
0

Я написал простое многопользовательское JAVA-приложение, которое может подключаться к MySQL с помощью JDBC-драйвера. В итоге я упаковал его в файл .jar. Когда я тестировал свою локальную машину MacOS, все было в порядке. (Я точно не помню все шаги по настройке драйвера JDBC, потому что это было год назад, когда я написал это приложение). Приложение в это время подключается к внешней базе данных на другом сервере (я не изменил это, потому что у него не было проблем). Это была бы другая ошибка, если бы это была проблема с удаленной базой данных.Драйвер JDBC для Windows Server 2003

Теперь, когда мне нужно поставить его на производство на Windows Server 2003, я получаю стандартную ошибку:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
And I don't get it, because I think I've done the steps right: 
0. Installed Java 
1. downloaded this: http://dev.mysql.com/downloads/connector/j/ 
2. added it to the same folder where the app.jar is 
3. wrote in cmd: set CLASSPATH =.;C:\Documents and Settings\Administrator\Desktop\tvplan_exchange\mysql-connector-java-5.1.28-bin.jar 
4. tested the variable: echo %CLASSPATH% and it showed the same path 
5. runned the app: java -jar app.jar 
6. got the error: 
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at svagers.Db.connect(Db.java:21) 
    at svagers.Server.main(Server.java:58) 
    MYSQL ERRORcom.mysql.jdbc.Driver 

Ну, для тех, кто думает, что с помощью приложения, как это ошибка безопасности - нет опасения, что это не проблема, мне просто нужно, чтобы это работать не учитывать риски :)

Это среда: ОС: Windows Server 2003 (Standard Edition с пакетом обновления 2) Java: 1.7.0_45 (SE Runtime Environment

+1

Загрузил ли ваш драйвер MySQL, вызвав: 'Class.forName (" com.mysql.jdbc.Driver ");'? –

+0

Это строка: Class.forName (driver) .newInstance(); где драйвер com.mysql.jdbc.Driver – LokoTerrorita

+0

И, как я уже сказал, все должно быть хорошо в коде, потому что я его запускаю и запускаю на своем компьютере (я использовал свой компьютер в качестве сервера для подключения с других компьютеров для разработки период) – LokoTerrorita

ответ

2

Я собирался сказать «запустите приложение с java -cp %CLASSPATH% -jar app.jar», но потом вспомнил, что вы не можете использовать оба: вы используете либо -jar , либо -cp. См. this ответ.

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