2014-01-08 109 views
0

我寫了一個簡單的多人JAVA應用程序,可以使用JDBC驅動程序連接到MySQL。 我最終把它打包成.jar文件。當我在本地計算機MacOS上測試時,它很好。 (我並不完全記得設置JDBC驅動程序的所有步驟,因爲那是一年前我寫這個程序的時候)。此時的應用程序連接到另一臺服務器上的外部數據庫(我沒有更改,因爲它沒有問題)。如果這是遠程數據庫的問題,那將是另一個錯誤。Windows Server 2003 JDBC驅動程序

現在,當我需要把它放在生產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(標準版,Service Pack 2) Java:1.7.0_45 (SE運行環境

+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的答案。