Problem mit Classpath-Variablen unter XP und Vista

Aiwonnie

Mitglied
Hi!

ich habe ein Programm in Form eines jar-Archivs, das auf meinem Rechner (XP) prima läuft.
Auf 2 anderen (XP und Vista) funktioniert es leider nicht, XP gibt die Meldung Main class not found aus und Vista gar nichts.
Das müsste ja ein Classpath-Problem sein oder?
Jetzt die Frage: welcher Classpath? Ich habe alle jar-Archive in lib und lib\ext angegeben, ich habe bin angegeben, nichts funktioniert.
Ich habe versucht, den Pfad von meinem Rechner, auf dem es ja läuft, zu übernehmen, aber die Datei, auf die gezeigt wird (QTJava.zip), existiert auf den anderen Rechnern nicht!

Hilfe...

lg Yvonne
 
Hi Yvonne,

ich denke mal das in den Systemvariablen dein Java-Pfad nicht ordentlich drin steht. Prüf das mal wie folgt:

1. rechte Maustaste auf Arbeitsplatz
2. Reiter "Erweitert" auswählen
3. Auf Umgebungsvariablen klicken
4. bei Benutzer oder Systemvariablen prüfen ob der Pfad zu Java stimmt!

//Das allerdings kann ich das nur für XP sagen, denn Vista habe ich nicht und ich weiß auch nicht ob und was da anders ist.

Greeze Chimaira
 
Naja, danke für deine Antowrt, aber das ist ja nicht ganz mein Problem...
Ich weiß schon, wie das geht, habe aber alle möglichen Pfade angegeben, ohne dass es funktioniert...
 
schonmal versucht den Class-Path in die MANIFEST.MF einzutragen?

Code:
Class-Path: lib\beispiel.jar lib\bsp.jar

Wenn du das in die MANIFEST schreibst musst du sicher sein, dass in dem Ordner in dem deine JAR liegt auch der Ordner lib mit den JARS ist.

Greeze Chimaira
 
Naja, aber ich hab dasselbe Programm (mit derselben Manifest.txt) im selben Kontext, nur auf verschiedenen Rechnern getestet. Bei den einen gings, bei den anderen nicht.
Und wo es ging, hatte ich auch nicht mehr in dem Verzeichnis liegen als auf denen, auf denen es nicht ging.
Außerdem soll nicht jeder, der das Programm benutzt, es ins Java-Verzeichnis legen müssen, zumal da auch größere Datenmengen im Spiel sind.
Ich hab halt die Vermutung, dass ich einfach nicht den richtigen Classpath angebe. Wie gesagt, auf manchen Rechnern läufts ja wie geschmiert.
 
sind es ne Menge JAR's oder was meinst du? Jetzt auf die Datenmenge bezogen? Wieviel MB sinds denn?
 
Es ist nur eine jar, die greift aber auf ein Verzeichnis mit wav-Dateien zu und da können beliebig viele rein-
 
ich meinte aber oben nicht, dass du jedes mal dein Programm in den Java Ordner legst.

Exportiere deine JAR mit dem MANIFEST.MF Eintrag zu der JAR. (falls du Eclipse verwendest)

Code:
Class-Path: lib\meineEineJar.jar

Eclipse fragt ja beim exportieren eines Projektes immer nach, ob man eine MANIFEST generieren oder eine bestehende MANIFEST benutzen möchte.

Dann lieferst du dein Programm wie folgt aus:

Code:
- meinProgramm.jar
- lib\
  - meineEineJar.jar

Das meinte ich mit deine JAR dorthin packen wo die libraries sind. Du sollst nichts in den JRE Ordner packen ;)

Greeze Chimaira
 
Auf den Rechnern, auf denen es laufen soll, ist leider kein Eclipse und ich kenne mich auch noch nicht sehr gut damit aus. Das sind leider nicht meine Rechner, ich kann da nicht viel ändern.
Soll also der erste deiner Code-Schnipsel in die Manifest.txt?
Und was meinst du mit MeineEineJar.jar, wenn MeinProgramm.jar das Programm ist?
Sorry, wenn ich so schwer von Begriff bin, ich bin erst dabei, Java zu lernen...

lg Yvonne
 
Hi,

du sollst ja nicht auf den Rechner Eclipse draufhaben. Jo der erste Codeschnipsel kommt in die MANIFEST rein (deine Manifest.txt). Ich vermute mal das du per Console (javac) kompilierst, richtig? Mit meineEineJar.jar meine ich die Library die du einbinden willst.

Du kopierst die Zeile in deine Manifest und startest nochmal den Kompiliervorgang. Ist dies passiert, so hast du eine fertige Jar (dein Programm).

Diese Jar packst du in einen Ordner. (meinetwegen auf den Desktop oder wo du willst). In diesen Ordner erstellst du einen Ordner names "lib". (ohne die "").

In diesen Ordner "lib" packst du die library rein. Dann solltest du das Programm, welches du geschrieben hast auch starten können. (Das sollte im 2. Codeabschnitt dargestellt werden)

Wenn du noch Fragen hast, dann frage bitte ;) Auf dem angehängten Bild siehste es noch einmal.

Der Class-Path-Eintrag verweist nur auf die library von deinem Programm aus gesehen.

Greeze Chimaira
 

Anhänge

  • erstens.PNG
    erstens.PNG
    1,3 KB · Aufrufe: 137

Neue Beiträge

Zurück