2009-11-30 2 views
0

Почему я получаю эту ошибку, когда класс SystemController находится в том же каталоге?Ошибка компилятора Java. Не удается найти символ

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

, пожалуйста, покажите 'ls' в том же каталоге и в классе' SystemController'. Я предполагаю неправильное написание. – Davide

+0

About.java EditComponent.java Messages.java Account.java FileRead.java NuclearSource.java AddComponent.form FileWrite.java PasswordRecovery.form AddComponent.java Graph.java PasswordRecovery.java BufferedImageBuilder.java Help.java ProduceReport.form Bundle.properties Hub.java ProduceReport.java City.java HydroSource.java SolarSource.java CoalSource.java ImagePanel.java Sound.java Console.java Login.form Source.java DeleteComponent.form SystemController.form DeleteComponent.java SystemController.java Край .java Login.java Vertex.java Main.java WindSource.java – user69514

+0

не уверен, что это было, но я создаю еще один класс под названием Main2, который является основным файлом в нем, и теперь он отлично работает, если я скомпилирую этот класс. Странно, я знаю ... код точно такой же. – user69514

ответ

2

Я предполагаю, что вы не компилировать SystemController, на котором Main зависит. Поэтому либо скомпилируйте вручную SystemController, прежде чем компилировать Main (но это будет болезненно в долгосрочной перспективе, если число классов растет) или скомпилировать все вместе, и пусть компилятор вычисляет порядок компиляции (лучше ИМО). Что-то вроде этого:

 
$ pwd 
/path/to/sgs 
$ cd .. 
$ javac sgs/*.java 
$ java -cp . sgs.Main 

EDIT: От ошибки вы публикуемую как комментарий, я могу видеть, что вы используете GNU GCJ, которые doesn't fully support Swing. Перейдите на Sun JDK или OpenJDK. Оба должны быть доступны как пакет, просто убедитесь, что он стал стандартным Java после установки (см. https://help.ubuntu.com/community/Java для Ubuntu или дистрибутива на базе Debian, узнайте, как это сделать для другого дистрибутива).

+0

java sgs.Main Исключение из потока "main" java.lang.NoClassDefFoundError: sgs.SystemController at java.lang.Class.initializeClass (libgcj .so.10) at sgs.Main.main (Main.java:27) Вызвано: java.lang.ClassNotFoundException: javax.swing.GroupLayout не найдено в gnu.gcj.runtime.SystemClassLoader {urls = [файл: ./], parent = gnu.gcj.runtime.ExtensionClassLoader {urls = [], parent = null}} at java.net.URLClassLoader.findClass (libgcj.so.10) в gnu.gcj.runtime.SystemClassLoader. findClass (libgcj.so.10) в java.lang.ClassLoader.loadClass (libgcj.so.10) в java.lang.ClassLoader.loadClass (libgcj.so.10) – user69514

+0

Я использую netbeans .... он отлично компилируется из IDE – user69514

+0

Я думаю, что Netbeans использует собственный JDK, который не тот, который вы используете в командной строке (вы используете 'gcj').Ввод 'java -version' в консоли подтвердил бы это. Я отредактировал свой ответ, чтобы дать больше рекомендаций. –

1

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

попробовать

javac *.java 

Кроме того, не забудьте указать свой путь к классам, где классы свинга есть.

javac -cp classpath *.java 
+0

javac * .java Примечание: Login.java использует или переопределяет устаревший API. Примечание: перекомпиляция с -Xlint: устаревшие сведения. – user69514

+0

Хотя это скомпилированное все, но оно все равно получает ту же ошибку, что и в моем исходном сообщении – user69514

Смежные вопросы