Ошибка компилятора Java. Не могу найти символ - PullRequest
0 голосов
/ 30 ноября 2009

Почему я получаю эту ошибку, когда класс 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 ]

2 голосов
/ 30 ноября 2009

Я предполагаю, что вы не скомпилировали SystemController, от которого зависит Main. Поэтому либо скомпилируйте вручную SystemController перед тем, как скомпилировать Main (но это будет болезненно в долгосрочной перспективе, если число классов будет расти), либо скомпилируйте все вместе, и пусть компилятор вычислит порядок компиляции (лучше 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, узнайте, как это сделать для другого дистрибутива).

1 голос
/ 30 ноября 2009

Вы скомпилировали SystemController?

попробовать

javac *.java

Кроме того, не забудьте указать путь к классам, где находятся классы Swing.

javac -cp classpath *.java
...