2012-07-28 70 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