2016-08-03 42 views
0

So habe ich versucht, zu kompilieren und Java auf Sublime zu starten, und es funktioniert gut, wenn das Paket nicht definiert ist.Fehler beim Ausführen von Java auf Sublime Text [OSX]

diese kompilieren und ausführen:

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

Aber wenn ich ein Paket hinzufügen:

package test; 

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

Ich habe diesen Fehler

Error: Could not find or load main class Tester 
[Finished in 6.8s with exit code 1] 
[cmd: ['javac "Tester.java" && java "Tester"']] 
[dir: /Users/ph/Documents/JAVA/test] 
[path: /usr/bin:/bin:/usr/sbin:/sbin] 

Jede Idee, warum ist das passiert oder wie man repariere es?

+1

Ich denke, weil Sie ein Paket hinzugefügt haben, müssten Sie einen Ordner namens Test erstellen, dann setzen Sie Tester.java hinein und führen Sie es dann außerhalb des Testordners. java test.Tester, um es zu laufen – Yan

+0

yeah, das ist wie strukturiert, es war immer in einem Ordner namens "test", deshalb habe ich das Paket hinzugefügt, aber nur kompilieren ohne es, wenn ich es schließe und es vom Terminal laufen es funktioniert einfach fein. – penHolder

Antwort

1
  1. [cmd: [ 'javac "Tester.java" & & java "Tester"']]
  2. [dir:/Users/ph/Dokumente/JAVA/test]

Sublime Text versucht, Ihr Programm in einem Verzeichnis namens "test" (siehe # 2) zu kompilieren, welches der Paketname ist. Es sucht nach einer Datei namens "Tester.java" in diesem Verzeichnis (siehe # 1), aber es existiert nicht, weil "Tester.java" im aktuellen Verzeichnis ("JAVA") ist.

Beim Kompilieren von Java-Dateien in Paketen müssen sich die Dateien in einer Verzeichnisstruktur befinden, die die Pakethierarchie widerspiegelt. Sie müssen also Ihre Datei in das Verzeichnis verschieben, das dem Paket entspricht, in dem sie enthalten ist. Beispielsweise müsste die Klasse "A" im Paket example.utils.letters im Pfad ../example/utils/letters/ vorhanden sein. A.java

Erstellen Sie den Ordner "JAVA/test" und bewegen Sie Tester.java dorthin, dann führen Sie es aus.

+0

danke für die Antwort, aber ich weiß, wie man Dateien organisiert, und das ist, wo die Datei ist, deshalb frage ich, weil ich nicht weiß, warum Sublime kann die Hauptklasse nicht finden, wenn es im selben Verzeichnis ist, in der Tat, wenn ich kompiliere und vom Terminal laufen, funktioniert es genau. – penHolder