2009-11-30 5 views
0

Pourquoi cette erreur se produit-elle lorsque la classe SystemController se trouve dans le même répertoire?Erreur de compilateur Java. Impossible de trouver le symbole

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

Veuillez montrer un 'ls' dans le même répertoire et la classe' SystemController'. Je suppose que c'est une fausse orthographe. – Davide

+0

About.java EditComponent.java Messages.java Account.java FichierRead.java NuclearSource.java AddComponent.form FichierWrite.java PasswordRecovery.form AjouterComponent.java Graphique.java PasswordRecovery.java BufferedImageBuilder.java Aide.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 bord .java Login.java Vertex.java Main.java WindSource.java – user69514

+0

pas sûr de ce que c'était, mais je crée une autre classe appelée Main2 dont le fichier principal et maintenant il fonctionne très bien si je compile cette classe. Bizarre je sais ... le code est exactement le même. – user69514

Répondre

2

Je suppose que vous ne compilez SystemController sur lequel Main dépend. Donc soit compiler manuellement SystemController avant de compiler Main (mais cela sera pénible à long terme si le nombre de classes augmente) ou compiler tout ensemble et laisser le compilateur calculer l'ordre de compilation (mieux IMO). Quelque chose comme ceci:

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

EDIT: De l'erreur que vous avez posté comme commentaire, je peux voir que vous utilisez GNU GCJ qui doesn't fully support Swing. Veuillez passer à Sun JDK ou OpenJDK. Les deux devraient être disponibles en tant que paquet, assurez-vous juste d'en faire le Java par défaut après l'installation (voir https://help.ubuntu.com/community/Java pour Ubuntu ou une distribution basée Debian, découvrez comment faire cela pour une autre distribution).

+0

java sgs.Main Exception dans le fil "principal" java.lang.NoClassDefFoundError: sgs.SystemController à java.lang.Class.initializeClass (libgcj .so.10) à sgs.Main.main (Main.java:27) Causée par: java.lang.ClassNotFoundException: javax.swing.GroupLayout introuvable dans gnu.gcj.runtime.SystemClassLoader {urls = [file: ./], parent = gnu.gcj.runtime.ExtensionClassLoader {urls = [], parent = null}} à java.net.URLClassLoader.findClass (libgcj.so.10) à gnu.gcj.runtime.SystemClassLoader. findClass (libgcj.so.10) at java.lang.ClassLoader.loadClass (libgcj.so.10) at java.lang.ClassLoader.loadClass (libgcj.so.10) – user69514

+0

J'utilise netbeans .... il compile bien à partir de l'IDE – user69514

+0

Je pense que Netbeans utilise son propre JDK qui n'est pas le même que celui que vous utilisez sur la ligne de commande (vous utilisez 'gcj').Taper 'java -version' dans une console confirmerait cela. J'ai édité ma réponse pour fournir plus de conseils. –

1

Avez-vous compilé SYSTEMInterfaces?

essayer

javac *.java 

Aussi, rappelez-vous de préciser votre classpath où les classes Swing sont.

javac -cp classpath *.java 
+0

javac * .java Remarque: Login.java utilise ou remplace une API obsolète. Remarque: Recompilez avec -Xlint: deprecation pour plus de détails. – user69514

+0

Bien que tout compilé, mais il obtient toujours la même erreur indiquée dans mon message original – user69514

Questions connexes