Ich bekomme immer Fehler, wenn ich meine Klasse Teil eines Pakets mache und versuche, es von cmd auszuführen.Wie führe ich eine .class-Datei aus, die Teil eines Pakets von cmd ist?
Hier ist der Code, der nach der Verwendung von javac und dann java funktioniert:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
und dann der Code, der nicht funktioniert:
package com;
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
gibt mir diesen Fehler nach dem Versuch, „java Helloworld läuft „:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam
e: com/HelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Hier ist, was ich versucht habe, so weit zu tun:
java -cp . HelloWorld
java -cp . com.HelloWorld
java -cp . com/HelloWorld
java HelloWorld
java com.HelloWorld
java com/HelloWorld
Denken Sie daran, dass javac ohne Fehler zurückkehrt und dass einfach "package com;" löst das Problem. Manchmal in anderen Szenarien bekomme ich einen Fehler, der sagt, dass die Hauptklassendatei nicht gefunden werden kann oder etwas in diesen Zeilen.
Was mache ich falsch?
Wo lebt 'HelloWord'? Leben sie im 'com /' Verzeichnis? – MadProgrammer
Ich glaube, du hast den Ordner "com" nicht. –
Es lebt in einem von mir erstellten Verzeichnis C: \ java, in dem sich HelloWorld.java und HelloWorld.class befinden. –