Ausnahme im Thread "main" java.lang.NoClassDefFoundError: HelloWorld

Ich habe ungefähr eine Stunde lang daran gearbeitet und Fragen und Antworten zum Stackoverflow durchgearbeitet, aber ich habe keine vorgeschlagene Lösung für mein Problem gefunden. Es tut mir leid, wenn dies ein Duplikat ist, aber ich konnte keine doppelte Frage mit einer Antwort finden, die mein spezifisches Problem gelöst hat.

Ich versuche zum ersten Mal, ein Java-Programm vom Terminal aus zu schreiben und zu kompilieren (bis zu diesem Zeitpunkt habe ich Eclipse für Java und VIM für alles andere verwendet, aber ich bin der Meinung, dass es an der Zeit ist, ganz auf VIM umzusteigen). Hier ist mein aktueller HelloWorld-Code:

package main;

public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

Ich kompiliere und starte mit den folgenden Befehlen (unter Angabe des Klassenpfads, um sicherzustellen, dass das nicht das Problem ist):

javac -cp "./" HelloWorld.java
java -cp "./" HelloWorld

Dies gibt mir die folgende Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: main/HelloWorld)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)

Ich weiß, dass die Datei HelloWorld.class angezeigt wird und versucht wird, auf die Klasse HelloWorld zuzugreifen. Wenn ich den Befehl run in Folgendes ändere:

java -cp "./" Foo

Ich bekomme eine ganz andere Fehlermeldung:

Error: Could not find or load main class Foo

Ich habe einige Dutzend Seiten zur Fehlerbehebung ausprobiert und bin auf Folgendes gestoßen:

Ausnahme im Thread "main" java.lang.NoSuchMethodError: main

http://introcs.cs.princeton.edu/java/15inout/mac-cmd.html

java -version ergibt:

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) Client VM (build 23.3-b01, mixed mode)

Mein Betriebssystem ist LinuxMint unduname -a ergibt:

Linux will-Latitude-D620 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux

Antworten auf die Frage(4)

Ihre Antwort auf die Frage