# java Programme über Konsole starten



## schorsch.2 (14. Jul 2005)

hi Leute,

ich möchte mein java-Programm über die Konsole starten mit verscheidenen parametern.
da es sich um die Klasse mit main Methode handelt,
habe ich einfach dem Aufruf " java Mainprogramm parameter "

soweit so gut:
jetzt greife ich in der Main Methode aber auch auf andere von mir geschribenen Klassen im gleichen Ordner zu und diese greifen teilweise auch auf andere pakete zu. In eclipse habe ich diese alle über BuildPath eingebunden,
wie schaffe ich das mittels Konsole ?
Muss ich da ein gesammeltes jarFile erzeugen oder wie läuft das,
denn er bringt mir die fehlermeldung, dass er bestimmte Klassen aus paketen nicht findet.


Bitte um ausführliche antwort wie ich das machen muss,
kenn mich mit so zeugs echt net aus.

schon mal danke für eure hilfe


Gruß Schorsch


----------



## thE_29 (14. Jul 2005)

Normalerweise schreibt einem eine IDE den Aufruf hin, mit denen es java startet!!

Schau dir den mal in Eclipse an und dann gib den gleichen an!

Desto mehr Klassen, etc desto länger wird der Befehl.


Falls dir der befehl net angezeigt wird, tjo, Eclipse halt 

Und kann man bei Eclipse net sagen, starte mit Parameter??

Weil dann könntest du es so austesten!!


Bzw, schreib dir eine bat Datei wo du den "java -cp bla1.class;bla2.class;bla3.class at.bla.mainBla %@" (in Linux $@)

Das %@ oder $@ übernimmt dir alle Parameter mit denen du die Bat/SH Datei aufgerufen hast!

Dann brauchst net immer einen ellenlangen Befehl eintippsen!


----------



## Soren (14. Jul 2005)

Auf der Konsole musst du alle jar Dateien im Classpath einfügen. Und zwar einzeln. Dazu fügst du mit ; getrennt alle kompletten Dateinamen ein, unter Windows über "Umgebungsvariablen" in system->erweitert. Dann sollte es gehen. Achte darauf, dass du auch Packagenamen des Programms angibst!


----------



## thE_29 (15. Jul 2005)

Also, so nen Schwachsinn hab ich schon lange nima gesehen....


Du setzt den classpath, wegen einem 1 Programm für das ganze System um??

Und dann geht das Programm so und so wieder nur bei dir...

Und wenn du auch nur 1 Klasse dann noch im classpath angibst, nimmt er dir die Umgebungsvariable so und so wieder nicht!!


Mit den Umgebungsvariablen und classpath sollte man sich nicht spielen und man sollte auch net auf den zurückgreifen...

Besser eine bat Datei, dann kann das Programm auch von jedem gestartet werden!!


----------



## scorsch2 (15. Jul 2005)

ok, ich weiss wie man eine bat Datei schreibt,

und was muss dann da rein, damit es Sinn macht ?

ich habe meine programme auf einem separaten rechner entwicklet und das System soll anschlueßend auf einen Server gespielt werden;

du hast schon recht, dass da die classpath variablen etc... wieder anders sind,
aber ich möchte halt mal testen , ob dieser Programmteil über die Konsole funktioniert!

so sieht meine bat dann aus:

java -classpath C:\Eclipse\eclipse\plugins\jdom\jdom-1.0\build\jdom.jar; C:\Eclipse\eclipse\plugins\ojdbc14.zip; C:\Eclipse\eclipse\plugins\poi.jar; Konsolenstart C:\downloads\konfig1.xml


kannst du mir bitte weiterhelfen, was noch in die batch datei muss!

danke


----------



## thE_29 (15. Jul 2005)

1. die leerzeichen hinter den ; braucht man nicht (könnte sogar sein das es da Probleme gibt)

2. wasn das Konsolenstart??

Das mit den jar files reintun is schon okay, aber den Rest versteh i net ganz...

Oder soll dass das mainProgramm sein??

Falls ja, musst du deine Klassen auch noch in den classpath hängen (bzw dein Jar File)

Dann starten tust dus so ungefähr (so sieht ne bat Datei von mir aus, als Bsp)

java -cp .\programs\jDstore.jar;.\programs\menu.jar;LoginMaske.jar at.dstore.capture.Player


Wobei das halt nur in dem Pfad geht, da meine Pfadangaben nicht relativ sind!!


und das at.dstore.Caputer.Player = die main Klasse


Und wenn du Parameter mitübergeben willst dann würdest du am schluss noch das machen

java -cp .\programs\jDstore.jar;.\programs\menu.jar;LoginMaske.jar at.dstore.capture.Player %@

dann werden die parametern mit denen du die bat Datei aufrufst


----------

