当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);
}
}
答案 0 :(得分:2)
我的猜测是你没有编译SystemController
依赖的Main
。所以要么在编译SystemController
之前手动编译Main
(但是如果类的数量增长那么长期会很痛苦)或者将所有内容编译在一起并让编译器计算编译顺序(更好的IMO) 。像这样:
$ pwd /path/to/sgs $ cd .. $ javac sgs/*.java $ java -cp . sgs.Main
编辑:根据您发布的评论错误,我可以看到您正在使用GNU GCJ doesn't fully support Swing。请切换到Sun JDK或OpenJDK。两者都应该作为包提供,只需确保在安装后将其设置为默认Java(请参阅https://help.ubuntu.com/community/Java以获取Ubuntu或基于Debian的发行版,了解如何为其他发行版执行此操作)。
答案 1 :(得分:1)
你编译过SystemController吗?
试
javac *.java
另外,请记住指定Swing类所在的类路径。
javac -cp classpath *.java