2016-09-29 3 views
0
existiert

Dies ist meine Dateistruktur:ein java.lang.NoClassDefFoundError Fehler beim Abruf, auch wenn .class-Datei

T1 -> T1sample -> src -> t1sample -> T1.java 
T1 -> T1sample -> src -> t1sample -> T1.class 

ich diese Ordner erstellt und Dateien selbst (mit Ausnahme T1.class, ich habe, dass durch Ausführen ' javac T1.java 'aus der Shell).

Dies ist T1.java:

package t1sample; 

public class T1 { 
    public static void main(String []args) { 
     System.out.println('Test'); 
    } 
} 

Jetzt, wenn ich versuche java T1 ausführen es gibt einen Fehler zu sagen:

java.lang.NoClassDefFoundError: T1 (wrong name: t1sample/T1) 

Jede Idee, warum?

+0

Versuchen Sie,> 'java t1sample.T1' –

+0

Welches Verzeichnis werden Sie von dem Java-Befehl ausgeführt wird? –

+0

@EddieB Ich bekomme einen Fehler: Konnte Hauptklasse t1sample.T1 Fehler nicht finden oder laden. – user2719875

Antwort

2

Nur zur Klarstellung der Grund, Ihr immer ein NoClassDefFoundError ist, weil Sie t1sample als Paket erklärt. Daher muss T1 aus dem Verzeichnis src ausgeführt werden, nicht aus t1sample.

zuerst die Verzeichnisstruktur erstellen ... (Verwendung als Redakteur gvim)

~/Desktop $ mkdir -p T1sample/src/t1sample && cd T1sample/src/t1sample && gvim T1.java 

Erstellen Sie die Quelle ...

package t1sample; 

public class T1 { 

    public static void main(String... args) { 
     System.out.println("Test"); 
    } 
} 

Compile ...

~/Desktop $ cd T1sample/src/t1sample/ 
~/Desktop/T1sample/src/t1sample $ javac T1.java 

Bestätigen ...

~/Desktop/T1sample/src/t1sample $ ls -la 
total 2 
-rw-r--r-- 1 Edward None 411 Sep 28 21:46 T1.class 
-rw-r--r-- 1 Edward None 137 Sep 28 21:45 T1.java 

Run aus dem Verzeichnis src ...

~/Desktop/T1sample/src/t1sample $ cd .. 
~/Desktop/T1sample/src $ java t1sample.T1 
Test 
Verwandte Themen