# Kompiliertes java programm über kommandozeile starten mit Verweis auf andere jars



## danielandross (7. Mai 2007)

Hallo,
ich benutze in meinem projekt verweise auf andere Projekte die mir als jars vorliegen. habe mir dazu ein funktionierendes build skript gebaut das mir meine distribution erstellt. Jetzt weiß ich allerdings nicht die genaue syntax  wie ich die main methode aufrufe und ihm dabei sage: du brauchst auch noch die folgenden jars zum laufen. Habt ihr ne Ahnung wie man diese jars genau da an den aufruf anhängt? hab das immer so machen wollen:


```
java -cp Meinjar.jar; andere.jar; andere.jar Mainklasse
```


----------



## limago (7. Mai 2007)

Hi,

sollte so gehen, wenn Du die Blanks im Classpath wegläßt.

Grüße


----------



## danielandross (7. Mai 2007)

NoClassDefFoundError: /

sagt er


----------



## limago (7. Mai 2007)

Hi,

hast du "alle" Klassen im Classpath. Auch die Klassen im aktuellen Verzeichnis. ggf. folgenden Aufruf versuchen

java -cp .;fullpath/eins.jar;fullpath/zwei.jar MainClass


Grüße

P.S.

Falls es nicht geht, schicke doch mal mehr von der Fehlermeldung.


----------



## MeinerEiner_80 (7. Mai 2007)

Moin!
Liegt deine Mainklasse in einem Paket?
Dann muss dieses beim Aufruf mit angegeben werden:
z.B.:

```
java -cp pathtoJar1/Jar1.jar;pathToJar2/Jar2.jar package1.package2.MainClass
```

*grüssle*
MeinerEiner


----------



## danielandross (7. Mai 2007)

die main klasse liegt im default paket. und am pfad kanns auch nicht liegen weil ich vor dem aufruf ja in den ordner navigiere wo die libs drin sind die ich anhängen will und dann per ..\ in dem darüberliegenden ordner die hauptjar aufrufe.


----------



## limago (7. Mai 2007)

Was meinst Du mit Hauptjar aufrufen?

java -cp ../Hauptjar.jar;eins.jar;zwei.jar Mainclass

wenn ich es richtig verstanden habe...


----------



## danielandross (7. Mai 2007)

exakt so mache ich es
und das lustige ist er sagt ja er findet / nicht obwohl es kein / gibt in dem ganzen aufruf


----------



## limago (7. Mai 2007)

Kann das sein, dass Deine libs noch weitere Libs brauchen? Poste doch mal den Fehlerstack....

Nachtrag: Sind noch auf andere Weise Pfade gesetzt? z.B. Durch Umgebungsvariablen?


----------



## danielandross (7. Mai 2007)

Fehlerstack?
er sagt mir in der kommandozeile nachdem ich den befehl eingegeben habe:
Exception in thread "main" java.lang.NoClassDefFoundError: /

nur diese Zeile gibt er aus.


----------



## limago (7. Mai 2007)

Knifflig,

wie sieht dein exakter Aufruf aus? Du hängst doch nicht etwa den suffix".class" an Deine Main-Klasse?


----------



## Kulabac (7. Mai 2007)

Hmm, nur so als Idee:

ersetz doch mal in jedem Try-Catch-Block deines Programms im Catch-Bereich das System.out.println(exception.toString); durch exception.printStackTrace();

Ist jetzt nur eine Idee, warum der Fehler nur aus einer Zeile besteht.


----------



## limago (7. Mai 2007)

Wird nicht gehen, Exceptions kann man nur fangen wenn das Programm läuft ;-)

Aber Du könntest doch mal auf die Libs verzichten und nur ein Hallo Welt Programm auf die Weise starten. Es liegt ja offensichtlich am Main-Programm.

Vielleicht bringt uns das weiter

Gruß


----------



## danielandross (7. Mai 2007)

hat sich erledigt. Hab das Problem zwar noch nicht gelöst ist aber gerade nicht mehr wichtig. Jetzt darf ich ein Programm suchen mit dem ich die Größe und Seitenanzahl eines Open office dokumentes auflisten kann. naja aber ich danke euch vielmals für eure bemühungen.


----------



## ice_tweety (4. Februar 2010)

ey leute, da müssen doch tüddel drum!

java -cp "pack1.jar;pack2.jar;pack3.jar" mainklasse


----------

