Tetsprogramm aus jar aufrufen

Hallo,
ich bin soeben auf ein jar gestoßen, welches mir das aktuelle Wetter anzeigen kann.
Enthalten ist auch ein Beispielprogramm, aber ich bekomm es einfach nicht ans laufen…
Da fehlt wohl eine Kleinigkeit. Hab schon viel gesucht und gelesen, mal fehlte das Manifest file im jar mal sollte man den classpath setzen etc. etc.

jar datei:
http://developerlife.com/weather.com/weather_service…
(von: http://developerlife.com/tutorials/?p=18)

Ich hab mir das jar mal angeguckt und ausgepackt, und dann folgendes probiert (unter anderem…)
javac -cp dist/weather_service.jar TestWeatherGateway.java
Wobei ich TestWeatherGateway.java auch in das Verzeichnis kopiert hab. So bekomme ich mehrere undefined Fehlermeldungen…
Wie ist also das richtige Vorgehen?

Ich will das jar später in ein bestehendes Programm mit einbinden, wollte es aber vorher mal testen.

Ich hoffe ihr könnt mir helfen, auch wenn solche Fragen wohl immer wieder kommen…

Danke!

Hallo,
javac -cp dist/weather_service.jar TestWeatherGateway.java
Wobei ich TestWeatherGateway.java auch in das Verzeichnis
kopiert hab. So bekomme ich mehrere undefined

Kompilieren brauchst du es nicht, da die Klasse TestWeatherGateway
bereits im JAR enthalten ist.

Aufruf wie folgt (Java 1.5 aufwaerts vorausgesetzt):

java -jar d:\temp\weather\_service\dist\weather\_service.jar

Dazu muss aber vorher ein Eintrag in die MANIFEST.MF (im JAR in META-INF):

Main-Class: weather\_service.TestWeatherGateway

Mit einem adaequaten ZIP-Programm (z.B. 7-Zip), kannst du das
quasi on-the-fly erledigen.

Gruss
Patrick

Der Hinweis auf die Java-Version brachte die Loesung…daher konnte es ja nicht klappen. Ich hab das hier auf einem Linux System getestet, und da war noch eine alte Version installiert…

Werde jetzt die neuste mal installieren und dann weitersehen.
Danke schon mal!

soll heissen: will immer noch nicht so…
$ java -version
java version „1.6.0_07“
Java™ SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot™ Server VM (build 10.0-b23, mixed mode)

$ java -jar weather_service.jar
Exception in thread „main“ java.lang.NoClassDefFoundError: weather_service/TestWeatherGateway
Caused by: java.lang.ClassNotFoundException: weather_service.TestWeatherGateway
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Irgendwie komisch, dass der seine eigene klasse nicht findet, oder?

Irgendwie komisch, dass der seine eigene klasse nicht findet,
oder?

Wundert mich jetzt auch.

Bei mir funktioniert es tadellos:

[d:\temp\weather\_service\dist]java -version
java version "1.6.0\_05"
Java(TM) SE Runtime Environment (build 1.6.0\_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

[d:\temp\weather\_service\dist]java -jar weather\_service.jar

 looking up location 20166 :: should work ok
04.02.2009 15:55:09 weather\_service.weatherprovider.WeatherGateway doSearchQuery
[...]

Gruss
Patrick