Wie Java-Programm über Batch-file starten?

smartin123

Mitglied
Hi,

ich hab im Forum schon geschaut und es gibt auch einige Beiträge dazu, aber leider komme ich immer noch nicht
weiter.

Ich versuche schon seit Tagen ein Java-Programm per Batch-File zu staren. Wichtig ist mir dabei, dass
Pfade in dem Tool dynamisch sein sollen.

Meine Lösung funktioniert, allerdings nur mit statischen Pfaden:
set path=.;C:\Program Files\JAVA\JRE\1.5.0_07\bin
java -Djava.library.path=C:\XYZ\calculator\libraries -jar starter.jar


Warum ich Djava.library.path verwende, weil unter libraries dll files sind, die geladet werden müssen.

Weiß jemand, wie ich pfade dynamisch angeben kann?

In einem Ordner (die Bezeichnung ist variable) befindet sich die bat-Datei. Und in diesem Ordner ist ein weiterer Ordner names calculator.

Wäre super, wenn mir jemand helfen könnte.

Danke + Gruß
smartin123
 
set path=.;C:\Program Files\JAVA\JRE\1.5.0_07\bin

Das solltest du weglassen. Ich würde den Nutzer lieber darauf hinweisen, dass JAVA_HOME definiert und im PATH vorhanden sein muss.

java -Djava.library.path=C:\XYZ\calculator\libraries -jar starter.jar

Weiß jemand, wie ich pfade dynamisch angeben kann?

Du meinst nicht dynamisch, sondern relativ würde ich mal denken.

Wenn die Batch-Datei im Ordner XYZ liegt verwendest du einfach
Code:
java -Djava.library.path=.\calculator\libraries -jar starter.jar
Der . steht für das aktuelle Verzeichnis
 
prima dankeschön.

Da hast du völlig recht, ich hab "relativ" gemeint :)

Funktioniert super, nur noch eines, jetzt ist in dem selben Verzeichnis wo starter.jar sich befindet, dort ist eine weitere jar und propertie-file.

Zuvor über die statische Variante hat es funktionert, da wurden diese Dateien mit geladen. Nun wird eine exception geschmissen, mit dem Hinweis dass
die propertie nicht geladen werden konnte. Wie gehe ich denn jetzt vor?

So sieht die struktur aus:

ordner xyz : batch-file
|
--> ein weiterer ordner mit dem namen calculator.

In diesem Ordner calculator sind alle Dateien enthalten. (starter.jar + properties usw...)
 
Zuletzt bearbeitet:
Bitte unterlasse es zweimal hintereinander zu posten. Du bekommst schon eine Antwort...

Was willst du denn mit der Properties Datei anfangen?
 
ok sorry, wollt nur nachfragen, ob sich das Problem lösen lässt. Mein Pfad-Problem
ist nicht ganz so einfach und das war die Vorfreude, dass es vielleicht doch eine Möglichkeit gibt :)

Es handelt sich um ein komplexes Tool, was properties-files enthält sowie jco, usw...
Diese Bestandteile der Anwendung müssen aufgerufen werden, da dort Konfigurationen enthalten sind, oder über diesen Weg die Anbindung zum SAP erfolgt.

Wie ich schon geschrieben habe, erfolgt der Programmaufruf per bat-file, wo pfade statisch sind. Allerdings sind statische Pfade in der bat file unschön, da Endanwender (Nicht ITler) keine Ahnung haben, wie sie die pfade anpassen müssen.
Das versuche ich über relative Pfade zu umgehen.

Deshalb interessiert mich besonders, warum das hier funktionert:
set path=.;C:\Program Files\JAVA\JRE\1.5.0_07\bin
java -Djava.library.path=C:\XYZ\calculator\libraries -jar starter.jar
--> hier werden, auch properties u.a. geladen

So leider noch nicht ganz:
java -Djava.library.path=.\calculator\libraries -jar .\calculator\starter.jar
--> hier wird starter.jar geladen, allerdings wird eine exception geworfen mit Fehler:
dass propertie nicht geladen werden kann.

Vielen Dank nochmal
 
Zuletzt bearbeitet:
Warum legst du eigentlich deine Batch-Datei nicht in das calculator Verzeichnis mit rein? Dann sollte das auch funktionieren.

Übrigens vorsicht bei den JCO-DLLs. Da reicht es leider nicht nur den library.path zu setzen, da er die librfc32.dll (ich glaube die wars) zuerst in Windows/system32 sucht. Wenn also eine SAP GUI installiert ist und die eine ältere Version hat, dann nimmt er die falsche dll und du bekommst nen Versionsfehler. Das ganze läßt sich umgehen indem du einmal beim Programmstart diese dll manuell lädst:
System.load("librfc32")

Dann nimmt er die aus dem library path. Ich hoffe ich habe das gerade so richtig in Erinnerung.
 
Ja, stimmt, wenn es nicht anders geht, dann werd ich das so machen müssen.
Ich wollt dem Anwender es ganz leicht machen, wenn nur eine Datei (bat-file) zu sehen ist, dann kann auch nur diese geöffnet werden. Wenn Anwender (keine IT-Fachleute) versuchen das Progamm zu starten, dann weiß nicht jeder, dass die bat-file zu starten ist. Aber ist nur ein Schönheitsfleck.

Also dann sag ich, danke für deine Tipps zeja und ein schönes Wochenende
 
Dann leg eine Verknüpfung auf die Batch-Datei im übergeordneten Ordner an. Dann siehts schicker aus für den Nutzer, weils dann gar keine Batch-Datei mehr ist.
 

Neue Beiträge

Zurück