2012-07-28 73 views
1

我是java新手,遇到一個錯誤(搜索半小時後)未顯示出來。我有兩個類(這是我下面的教程):Javac找不到包中存在的類

Board.java:

package skeleton; 

import javax.swing.JPanel; 

public class Board extends JPanel { 
    public Board() {} 
} 

和Skeleton.java(我已經剝離了非相關材料):

package skeleton; 

import javax.swing.JFrame; 

public class Skeleton extends JFrame { 
    public Skeleton() { 
     add(new skeleton.Board()); 
    } 
    public static void main(String[] args) { 
     new Skeleton(); 
    } 
} 

我編譯了他們兩個,但Skeleton得到它找不到Board的錯誤。有誰知道爲什麼javac無法找到正確的類嗎?

編輯:他們都在同一個文件夾名爲'骨架'。另外,我的操作系統是Windows XP專業版。

+0

[Rü確保董事會編制? – hvgotcodes 2012-07-28 19:03:30

+0

請提供您嘗試編譯時使用的確切命令 – 2012-07-28 19:05:48

回答

1

如果它在同一個包中,則不需要使用名稱空間來調用第二個類。

嘗試檢查文件夾中是否存在Board.class文件。正好使用new Board();來實例化。

1

試了一下。

$ ls  
skeleton 
$ ls skeleton 
Board.java Skeleton.java 
$ javac skeleton/*.java 
$ ls skeleton 
Board.class Board.java Skeleton.class Skeleton.java 

調用javac命令,使得兩個.class文件都放在骨架中。另外,在運行時確保骨架的父目錄位於classpath中。

0

假設你編譯並在同一目錄下運行:

運行時再使用

java -cp . skeleton.Skeleton