Error del compilador de Java. No puedo encontrar el símbolo
-
08-07-2019 - |
Pregunta
¿Por qué recibo este error cuando la clase SystemController está en el mismo directorio?
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);
}
}
Solución
Supongo que no compiló SystemController
del que depende Main
. Entonces, compile manualmente SystemController
antes de compilar Main
(pero eso será doloroso a largo plazo si el número de clases aumenta) o compile todo junto y deje que el compilador calcule orden de compilación (mejor IMO). Algo como esto:
$ pwd /path/to/sgs $ cd .. $ javac sgs/*.java $ java -cp . sgs.Main
EDITAR: por el error que publicó como comentario, puedo ver que está utilizando GNU GCJ que no es totalmente compatible con Swing . Cambie a Sun JDK o OpenJDK. Ambos deberían estar disponibles como paquete, solo asegúrese de convertirlo en el Java predeterminado después de la instalación (consulte https: // help.ubuntu.com/community/Java para Ubuntu o una distribución basada en Debian, descubra cómo hacer esto para otra distribución).
Otros consejos
¿Has compilado SystemController?
prueba
javac *.java
Además, recuerde especificar su classpath donde están las clases Swing.
javac -cp classpath *.java