Meine Verzeichnisstruktur sieht so aus.JVM kann meine Klasse nicht finden: java.lang.NoClassDefFoundError
PackagesUnit3/com/myname/Start/PackagesTest.java
(diese Klasse meine Haupt- und die Import-Anweisung „import com.systems.mui enthält. *;)
PackagesUnit3/com/Systeme /mui/Test.java
(diese Klasse enthält das Paket Anweisung „Paket com.systems.mui;“)
mit PackageUnit3 als mein Basisverzeichnis I erfolgreich beiden Klassen kompilieren kann mit der Anweisung
"javac com/myname/start/PackagesTest.java"
Allerdings kann ich den Code nicht mit dem .class
Dateien für jede der Java-Klassen
"java com.myname.start.PackagesTest"
Error: "Exception in thread "main" java.lang.NoClassDefFoundError: com/myname/start/PackagesTest (wrong name: PackagesTest)"
Der complier erfolgreich generierte Befehl ausführen und platziert sie in der gleichen Position wie die Quelldateien.
Laut Horstmann, "Core Java" 9. Ausgabe. p. 186, meine "Java" Befehlssyntax sollte funktionieren.
Ich sollte nicht das aktuelle Verzeichnis (".") Angeben müssen, da ich nicht die Option Classpath (-cp) verwende.
Ein Hinweis: Ich verwendete den "SUBST R:" Befehl, um das PackagesUnit3-Verzeichnis als Basisverzeichnis einzurichten. Meine tatsächliche Befehlszeile sieht wie folgt aus: R:>
Irgendwelche Vorschläge ??
+1, weil Ihr Fragetitel mich zum Lachen brachte. :) –
'java com.myname.start.Packages.test' - ist das ein Tippfehler? Weil Ihr Klassenname 'PackagesTest' ist. –
Ich schlage vor, Sie reparieren Ihre Befehlszeile. Wenn Ihre PackagesTest-Klasse über die main() -Methode verfügt, sollte Ihre Befehlszeile java com.myname.start.PackagesTest lauten. – Olaf