Javaコンパイラエラー。シンボルを見つけることができません
-
08-07-2019 - |
質問
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
所属していません StackOverflow