Javac找不到包中存在的类

时间:2012-07-28 19:02:37

标签: java compilation javac

我是java新手,我遇到一个错误(经过半小时的搜索)没有透露自己。我有两个课程(这是来自我的教程):

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 prof。

3 个答案:

答案 0 :(得分:1)

如果它在同一个包中,则不需要使用命名空间来调用第二个类。

尝试检查文件夹中是否存在Board.class文件。只需使用new Board();来实例化。

答案 1 :(得分:1)

试一试。

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

调用javac命令,使两个.class文件都在骨架中。此外,在运行时确保骨架的父目录在类路径中。

答案 2 :(得分:0)

假设您在同一目录中编译并运行:

运行时请使用

java -cp . skeleton.Skeleton