1

私はJavaが初めてで、(30分検索した後)それ自体が明らかにならないエラーに遭遇しています。私は2つのクラスを持っています(これはチュートリアルに従って私からのものです):

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 がそこにあるクラスを見つけられない理由を知っている人はいますか?

編集:どちらも「スケルトン」という名前の同じフォルダーにあります。また、私のOSはwindows xp profです。

4

3 に答える 3

1

同じパッケージに含まれている場合は、名前空間を使用して2番目のクラスを呼び出す必要はありません。

Board.classファイルがフォルダに存在するかどうかを確認してみてください。new Board();インスタンス化するために使用するだけです。

于 2012-07-28T19:10:07.903 に答える
1

試してみてください。

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

両方の .class ファイルがスケルトンに配置されるように、javac コマンドを呼び出します。また、実行中にスケルトンの親ディレクトリがクラスパスにあることを確認してください。

于 2012-07-28T19:55:12.100 に答える
0

同じディレクトリでコンパイルして実行していると仮定します。

実行時に使用する

java -cp . skeleton.Skeleton
于 2012-07-28T21:33:27.287 に答える