Java编译器错误。找不到标志

时间:2009-11-30 02:04:11

标签: java swing compiler-construction compiler-errors

当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);
    }

}

2 个答案:

答案 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