2013-03-10 54 views
0

對不起,這個問題noobie,我是新來的Java,而不是使用IDE,我想使用命令行來了解什麼是引擎蓋不能在我的Java文件中使用的jar庫

我下運行「M上MigLayout

#MigWindow.java 

public class MigWindow { 
    public static void main(){ 
     javax.swing.JPanel panel = new javax.swing.JPanel(new MigLayout());// a simple line to make sure the library jar import correctly 

    } 

} 

入門公會以下,並與這些命令編譯:

javac -cp ./MigLayout.jar MigWindow.java 

,我得到了一個錯誤:

MigWindow.java:3: cannot find symbol 
symbol : class MigLayout 
location: class MigWindow 
     javax.swing.JPanel panel = new javax.swing.JPanel(new MigLayout()); 


                ^
1 error 

看來jar庫不能正確導入,任何想法?

+0

文件MigWindow.java和MigLayout.jar在哪裏?該命令的默認目錄是什麼? – arcy 2013-03-10 12:17:46

回答

1

請確保您添加的進口爲MigLayout

import net.miginfocom.swing.MigLayout; 

這可能聽起來很明顯,但要確保MigLayout.jar當前目錄調用javac在這裏和你的JAR文件沒有被損壞。

更新:

要檢查您的JAR文件確實包含你可以做類:

jar tvf MigLayout.jar 

並檢查MigLayout類。無法找到該課程,您可以從here下載正確的課程。

+0

我怎樣才能告訴完整的包名稱「net.miginfocom.swing.MigLayout」形式Jar文件? – mko 2013-03-11 09:02:07

+0

線程「main」中的異常java.lang.NoClassDefFoundError:net/miginfocom/swing/MigLayout – mko 2013-03-11 09:04:51

+0

JAR文件可能不包含'MigLayout'類。查看更新 – Reimeus 2013-03-11 13:20:25

0

您在源文件中缺少導入語句。編譯器不知道'MigLayout'來自哪裏。

添加在您文件的頂部,但在您的package聲明(如果有)的下方添加一個導入,例如,

import package.MigLayout; 

這告訴編譯器從給定的類路徑中導入什麼。您需要用正確的包裝替換package