質問

SystemControllerクラスが同じディレクトリにあるときにこのエラーが発生するのはなぜですか?

sgs$ javac Main.java 

Main.java:27: cannot find symbol
symbol  : class SystemController
location: class sgs.Main
        SystemController sc = new SystemController();
        ^
Main.java:27: cannot find symbol
symbol  : class SystemController
location: class sgs.Main
        SystemController sc = new SystemController();
                                  ^
2 errors

package sgs;

import javax.swing.JFrame;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        boolean loginSuccess = false;
        //Login login = new Login();
        //login.setVisible(true);
        //login.loadAccounts("files/accounts.txt");

        SystemController sc = new SystemController();
    sc.setVisible(true);
        sc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}
役に立ちましたか?

解決

私の推測では、 Main が依存する SystemController をコンパイルしていません。そのため、 Main をコンパイルする前に手動で SystemController をコンパイルします(ただし、クラスの数が増えると長期的には苦痛になります)。コンパイル順序(より良いIMO)。このようなもの:

$ pwd
/path/to/sgs
$ cd ..
$ javac sgs/*.java
$ java -cp . sgs.Main

編集:コメントとして投稿したエラーから、 GNU GCJ Swingを完全にサポートしていない。 Sun JDKまたはOpenJDKに切り替えてください。両方ともパッケージとして利用可能である必要があります。インストール後に必ずデフォルトのJavaにしてください( https://を参照してください) help.ubuntu.com/community/Java (UbuntuまたはDebianベースのディストリビューションの場合、別のディストリビューションでこれを行う方法をご覧ください)。

他のヒント

SystemControllerをコンパイルしましたか?

試用

javac *.java

また、Swingクラスがあるクラスパスを指定することを忘れないでください。

javac -cp classpath *.java
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top