Java-Compiler-Fehler. Kann das Symbol nicht finden
-
08-07-2019 - |
Frage
Warum erhalte ich diesen Fehler, wenn die Systemcontroller-Klasse im selben Verzeichnis?
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);
}
}
Lösung
Meine Vermutung ist, dass Sie nicht SystemController
kompilieren haben, auf dem Main
abhängt. Also entweder manuell kompilieren SystemController
vor Main
zu kompilieren (aber das wird auf lange Sicht schmerzhaft sein, wenn die Anzahl der Klassen wächst) oder alles kompilieren zusammen und lassen Sie den Compiler berechnet die Kompilation Ordnung (besser IMO). So etwas wie folgt aus:
$ pwd /path/to/sgs $ cd .. $ javac sgs/*.java $ java -cp . sgs.Main
EDIT: Aus dem Fehler, den Sie als Kommentar gepostet, kann ich sehen, dass Sie verwenden GNU GCJ die nicht vollständig nicht-Schwingen unterstützen. Bitte wechseln Sie in Sun JDK oder OpenJDK. Beide sollten als Paket verfügbar sein, nur um sicher machen, um es den Standard macht Java nach der Installation (siehe https: // help.ubuntu.com/community/Java für Ubuntu oder Debian-basierte Distribution, herauszufinden, wie diese) für eine andere Distribution zu tun.
Andere Tipps
Haben Sie zusammengestellt Systemcontroller?
Versuch
javac *.java
Beachten Sie auch, Ihre Classpath angeben, wo die Swing-Klassen sind.
javac -cp classpath *.java