2014-04-03 161 views
0

我有通過JDBC與數據庫通信的服務器。當我編譯它運行JDBC java編譯

javac -cp jdbc.jar package/Server.java

我得到的廢話錯誤,但是無法找到其他文件我的班。如果我編譯它沒有-cp選項但-cp選項,運行它:

java -cp jdbc.jar package.Server 我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: package/Server Caused by: java.lang.ClassNotFoundException: package.Server

什麼是正確的方法是什麼?

回答

3

添加當前目錄到classpath

javac -cp .:jdbc.jar package/Server.java 
0

可能是你使用eclipse。 如果是這樣,那麼只需複製你的代碼粘貼到主目錄中的一些新創建的文件並運行它。

我正面臨一些問題,並通過上述操作解決了它。 :)

+0

是的我把它寫在IDE中,但我需要通過SSH在服務器上運行它,所以我需要這樣編譯它。 – SpeedEX505

1

假設您已設法編譯您的代碼並且執行時遇到問題。 你需要在你的類路徑如下:

  1. 編譯的類
  2. 外部依賴

比方說,你的項目結構如下所示:

| 
|-- classes 
    |-- package 
    |-- Server.class 
|-- lib 
    |-- jdbc.jar 

這兒上課的包含您的已編譯的java類(eclipse可以很好地完成它,但是如果要在不同的系統上運行它們,您可能需要查看特定於系統的構建遠程服務器)和lib包含所有的外部依賴(在你的情況下jdbc.jar)。

現在,您可以通過添加類和lib文件夾到類路徑中運行,從項目的根代碼:

java -cp ./classes:./lib package.Server 

不過,我強烈建議使用一個標準的項目結構,尋找到項目經理類似maven維護項目和跨服務器構建。