# Probleme mit JAR - "Could not find main class"



## vanToom (7. Juni 2004)

Hallo Leute!

Ich hab folgendes Problem:
Ich hab mir eine kleine Applikation geschrieben, (die GUI enthält SWT) und diese möchte ich nun per JAR-File einfach, ohne Entwicklungsumgebung aufrufen können. 

Hab mir mit Hilfe von Eclipse 3.0 M8 ein JAR-File erstellt und dort auch die Main.Klasse angegeben.

Beim Aufrufen des Files erhalte ich immer folgenden Fehler:
"Could not find main class"

Obwohl diese definitiv darin enthalten ist.

Mein erster Gedanke war, dass das ganze mit dem SWT Zeugs zusammenhängt. (den bei einem Projekt ohne SWT hat das schon mal geklappt)

Kann mir bitte jemand weiterhelfen. vielen DANK


----------



## Thomas Darimont (7. Juni 2004)

Hallo!

Hast du zufällig alle Klassen in einem Package liegen?
wenn die main-Klasse  beispielsweise im Package "runtime" liegt
muss der Eintrag in der Manifest.mf auch 
runtime.MainKlasse 
lauten ...

Gruß Tom


----------



## vanToom (7. Juni 2004)

Hallo!

Ich hab die Klassen in verschiedene Packages aufgeteilt. Meine Klasse RunApp liegt im Package "run"
im Manifest steht dann: "Main-Class: run.RunApp"
Das sollte eigentlich hinhauen, da das ganze ja von Eclipse erstellt wurde.

Kann es sein, dass das ganze mit SWT zusammenhängt. Um SWT in einer Applikation ausführen zu können ist ja, soviel ich weiß, eine .dll Datei notwendig.
Kann es sein, dass diese .dll dem JAR-File nicht genügt, oder ich noch was anderes einbinden muss?

danke
VT


----------



## Thomas Darimont (7. Juni 2004)

Hallo!

Wenn du die SWT Libs extern verwenden willst muss zum einen das swtXXXXX.jar
im Classpath liegen und zum anderen musst du die DLL entweder
nach
%JAVA_HOME%/jre/lib/i386
oder
%JAVA_HOME%/bin
(Je nachdem wie du deinen Path gesetzt hast)

in die Systemvariable LD-LIBRARY_PATH oder
beim Aufruf von java als paramter

java -cp %CLASSPATH% -Djava.library.path=c:\pfad\zu\dll runtime.MeineMainKlasse

Gruß Tom


----------



## Christian Fein (7. Juni 2004)

> _Original geschrieben von Thomas Darimont _
> *Hallo!
> 
> Wenn du die SWT Libs extern verwenden willst muss zum einen das swtXXXXX.jar
> ...



Unter Eclipse lässt sich dieser Parameter -Djava.library.path=c:\pfad\zu\dll runtime.MeineMainKlasse unter VM Optionen in der Run Configuration angeben.

grüsse


----------



## Thomas Darimont (7. Juni 2004)

Schon klar!

Aber es ging ja um 


> ...Wenn du die SWT Libs extern verwenden willst...



Gruß Tom


----------



## vanToom (11. Juni 2004)

Hallo Nochmal!

Ich komm leider auf keinen grünen Zweig. Irgendwie will das ganze nicht funktionieren.

Also nochmal: Ich hab eine Applikation und die GUI besteht aus SWT. Aus dieser Applikation möchte ich nun ein jar generieren, dass ich per Doppelklick öffnen kann. er findet aber die main.class nicht. Das Problem liegt anscheinend am SWT bzw. swt.jar.

Ich schaff es einfach nicht, dieses jar in mein tool einzubinden.

Kann mir bitte wer nochmal helfen.
Sollte das Ding heute abliefern

vielen Dank

grüsse
VT


----------



## Thomas Darimont (11. Juni 2004)

Hallo!

Hast du im Manifest.mf nach dem Eintrag

Main-Class: run.RunApp

EINMAL  Enter gedrückt? -> Notwendig!
Das solltest du jedoch mit nem "richtigen" TextEditor machen ... auf keinen Fall mit Notepad. Der verwendet nämlich die Sequenz \r\n als NewLine, das Jar-Manifest verlangt jedoch \n als NewLine Symbol.

Gruß Tom


----------



## gerritka (30. Mai 2005)

Würd auch gern die SWT Libraries extern einbinden. Gibt es auch die Möglichkeit die swt.jar und die dll direkt ins gleiche Verzeichnis wie die Jar zu packen und dann die jar mit den entsprechenden Parametern zu öffnen?

hab folgendes versucht, funktioniert aber nicht:

java -cp \swt.jar -Djava.library.path=\swt-win32-3123.dll -jar PicSim.jar

in Manifest steht folgendes:
Manifest-Version: 1.0
Main-Class: picsim.PicSim


----------



## gerritka (30. Mai 2005)

Probieren führt halt doch manchmal zum Erfolg 

mußte folgendes in die Manifest Datei hinzufügen:
Class-Path: swt.jar

und die swt.jar und die dll müssen halt im selben Verzeichnis sein.

Aufruf dann nur: java -jar PicSim.jar


----------



## SNOWMAN-X (22. August 2007)

DANKE!

Einfach "Class-Path: swt.jar" in die MF Datei und dann dafür sorgen, das die swt.jar im gleichen Order liegt wie meine eigene Jar, eigentlich ganz einfach.

Und ich suche seit Wochen nach einer Anleitung, wie ich SWT Applikationen in Jar-Dateien exportieren kann und diese dann auch funktionieren.
Naja, OK, ich hab viel gefunden, aber nichts hat bisher geklappt.

Ah, yeah, das hat mir den Tag gertettet, danke!


----------

