2012-07-27 79 views
-1

當Java源代碼如下:爪哇:NoClassDefFoundError的添加包語句

package test; 

public class DotMain { 
    public static void main(String... args) { 
     String s1 = "abcdex"; 
     String s2 = "ac"; 
     boolean[] r1 = new boolean[26]; 
     for (char c : s1.toCharArray()) 
      r1[c - 'a'] = true; 
     boolean contained = true; 
     for (char c : s2.toCharArray()) { 
      if (!r1[c - 'a']) { 
       contained = false; 
       break; 
      } 

     } 
     System.out.println(contained); 
     System.out.println(s1 + s2); 
    } 
} 

如果沒有「封裝測試;」相應的類文件將表現正確。但是當我添加「包裝測試」時標題中所述的例外發生。有什麼不對?

+0

你如何運行它? – 2012-07-27 10:23:49

+0

你有沒有交叉檢查你的課是否存在於包測試..? – Ahmad 2012-07-27 10:24:25

+0

這被問了1000次... – 2012-07-27 10:30:07

回答

1

有可能是你沒有正確地建造它或沒有正確地運行它。

構建它像這樣(在路徑信息正確填寫):

javac -d . path/to/DotMain.java 

運行這樣的:

java test.DotMain 

(您可以更改當然-d指定的輸出目錄,在哪一點你應該將該目錄添加到類路徑或在運行之前更改到該目錄。)

+0

我編譯的源代碼就像你的建議「javac -d.d:\ eclipsews \ DotMain.java」並運行它,像「java test.DotMain」,它成功了。謝謝!但爲什麼它會像編譯「javac DotMain.java」一樣失敗? – wix 2012-07-30 03:31:08

+0

@wix:您需要將.class文件放在鏡像包結構的目錄結構中。您可以通過將*源代碼*放在相同的結構中來實現這一點 - 您應該爲任何重要的工作做好準備 - 或者只使用'-d'選項。 – 2012-07-30 05:53:19