spider: Classpath

Moin,

ich möchte gern ein Java Programm ausführen, dazu benutze ich folgenden Befehl:

"C:\Program Files\Java\jre1.5.0_11\bin\java.exe" -cp X:\source\Projekte\PHP com.myfiles.yyy.samples.pClient 'Parameterliste'

Die Datei pClient.class liegt im Verzeichnis X:\source\Projekte\PHP\com\myfiles\yyy\samples\

Führe ich obigen Befehl aus, so bekomme ich den Fehler "Exception in thread "main" java.lang.NoClassDefFoundError: com.myfiles.yyy.samples.pClient (wrong name: pClient)"

Könnte mir da jemand einen Tipp geben, wo da der Fehler liegt?

Vielen Dank schon mal im Voraus.

Gruß Spider

  1. Hi spider!

    Könnte mir da jemand einen Tipp geben, wo da der Fehler liegt?

    Schlag mich, aber ich glaube in Java muss die Klasse, die die main-Funktion enthält, den gleichen Namen haben wie die Quelltextdatei.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Schlag mich, aber ich glaube in Java muss die Klasse, die die main-Funktion enthält, den gleichen Namen haben wie die Quelltextdatei.

      Wußte gar nicht, daß Prügel die Vorraussetzung für Antworten sind :)

      Ich weiß nicht genau, ob ich das nun richtig verstehe, aber die Datei pClient.class enthält eine Klasse pClient, die die Main Methode enthält. Muß man das eventuell noch irgendwo eintragen, daß DIESE Main Methode DIE Main Methode ist?

      Gruß Spider

      1. Hi spider!

        Schlag mich, aber ich glaube in Java muss die Klasse, die die main-Funktion enthält, den gleichen Namen haben wie die Quelltextdatei.
        Wußte gar nicht, daß Prügel die Vorraussetzung für Antworten sind :)

        Mach mich fertig, aber soweit ich weiß, haben sie die Forumregeln geändert.

        Muß man das eventuell noch irgendwo eintragen, daß DIESE Main Methode DIE Main Methode ist?

        Nö. Aber im gesamten Programm sollte trotzdem nur genau einmal "public static void main" vorhanden sein.

        Bei deinem Problem könnten andere vielleicht helfen, wenn du ein wenig Quelltext postest bzw. verlinkst.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Moin,

          ich schließe den eigentlichen Quellcode mal ganz dreist aus. Er enthält nur diese eine Main Methode.

          Wie der Titel schon sagt, vermute ich den Fehler eher im Classpath. Wenn ich den ganzen Krempel in Eclipse ausführe, gehts.

  2. Hallo,

    bitte gib nur eine eMail-Adresse an, die dir gehört (und existiert). Wenn
    du keine angeben möchtest, dann gib keine an.

    "C:\Program Files\Java\jre1.5.0_11\bin\java.exe" -cp X:\source\Projekte\PHP com.myfiles.yyy.samples.pClient 'Parameterliste'

    Hier sehe ich nichts offensichtlich Falsches. Mmh...
    Du könntest mal probeweise noch das aktuelle Verzeichnis in den Classpath
    aufnehmen, also so:
      -cp X:\source\Projekte\PHP;.

    Ein abschließendes Backslash nach 'PHP' schadet sicherlich auch nicht.

    Du schreibst, daß es in Eclipse funktionieren würde. Schau dir doch mal
    die Kommando-Zeile an, mit der Eclipse das Programm aufruft.

    Starte hierfür das Programm in Eclipse, entweder im Run- oder im
    Debug-Modus. Das Programm darf ruhig weiter laufen, wenn du die
    nächsten Schritte ausführt. Es geht aber auch, wenn es sich gleich
    wieder beendet.

    Öffne jetzt die Debug-Perspective, so daß du den Debug-View siehst.
    (Das ist der View, in dem die gerade laufenden Programme und während
    dem Debugging der Call-Stack angezeigt wird.)

    Klicke mit der rechten Maustaste auf die letzte Zeile im Baum unterhalb
    deiner Java-Applikation. Hast du die Anwendung nicht im Debug-Modus
    gestartet, ist es die einzige Zeile. Sie beinhaltet in der Regel so
    etwas wie "c:\programme\jdk1.5\bin\javaw.exe" oder dergleichen.

    Wähle im Kontext-Menü "Properties" und schau dir das an, was unter
    "Command Line" angezeigt wird.
    Der hier angezeigte Text müßte ziemlich nah an dem sein, was du oben
    angegeben hast.

    Am besten du nimmst die ganze Zeile und probierst diese mal in der
    Konsole aus.

    Gruß
    Slyh