Errore del compilatore Java. Non trovo il simbolo
-
08-07-2019 - |
Domanda
Perché visualizzo questo errore quando la classe SystemController si trova nella stessa directory?
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);
}
}
Soluzione
Suppongo che tu non abbia compilato SystemController
da cui dipende Main
. Quindi compilare manualmente SystemController
prima di compilare Main
(ma ciò sarà doloroso a lungo termine se il numero di classi aumenta) o compilare tutto insieme e lasciare che il compilatore calcoli il ordine di compilazione (meglio IMO). Qualcosa del genere:
$ pwd /path/to/sgs $ cd .. $ javac sgs/*.java $ java -cp . sgs.Main
EDIT: dall'errore che hai pubblicato come commento, posso vedere che stai utilizzando GNU GCJ che non supporta completamente Swing . Passare a Sun JDK o OpenJDK. Entrambi dovrebbero essere disponibili come pacchetto, assicurati di renderlo il Java predefinito dopo l'installazione (vedi https: // help.ubuntu.com/community/Java per Ubuntu o una distribuzione basata su Debian, scopri come farlo per un'altra distribuzione).
Altri suggerimenti
Hai compilato SystemController?
try
javac *.java
Ricorda inoltre di specificare il tuo percorso di classe in cui si trovano le classi Swing.
javac -cp classpath *.java