Java 编译器错误。找不到符号

问题描述 投票:0回答:2

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

}
java swing compiler-errors
2个回答
2
投票

我的猜测是你没有编译

SystemController
所依赖的
Main
。因此,要么在编译
SystemController
之前手动编译
Main
(但从长远来看,如果类数量增加,这将是痛苦的),或者将所有内容一起编译并让编译器计算编译顺序(IMO 更好)。像这样的东西:

$ 密码
/路径/到/sgs
$ 光盘 ..
$ javac sgs/*.java
$ java -cp . sgs.Main

编辑:从您作为评论发布的错误中,我可以看到您正在使用GNU GCJ,它不完全支持Swing。请切换到Sun JDK或OpenJDK。两者都应该作为软件包提供,只需确保在安装后将其设置为默认 Java(对于 Ubuntu 或基于 Debian 的发行版,请参阅 https://help.ubuntu.com/community/Java,了解如何执行此操作)另一个发行版)。


1
投票

你编译了SystemController吗?

尝试

javac *.java

另外,请记住指定 Swing 类所在的类路径。

javac -cp classpath *.java
© www.soinside.com 2019 - 2024. All rights reserved.