JAR aus Batchdatei Aufruf

Romski

Neues Mitglied
Hallo zusammen,

erstmal hoffe ich, dass ich hier im richtigen Unterforum bin.
Ich habe folgendes Problem:

Ich rufe eine Batch Datei über

Process p=Runtime.getRuntime().exec("\\\\server\\DFS\\Pfad\\start_663_WF1.bat"); auf.

In dieser Batch Datei stehen Anweisungen nach dem Muster:

@echo off
rem
rem file: start.bat

set Java_Prg=C:\Programme\Java\jdk1.6.0_21\bin\java.exe
set model=.\XYZ-Model_REG_v116.xml
Set logfile=.\XYZ-log.txt
set layout=.\layout_Demo_WF1.xml
set lang=de
set mem=-Xms200M -Xmx1100M

set jarfile=.\XYZ.jar

echo on
%Java_Prg% "-Dosam.model.cost=Mittl__Maánahmenkosten" "-Djava.library.path=./jni" "-Dosam.log=%logfile%" "-Dosam.model.file=%model%" "-Dosam.ui.layout=%layout%" -Duser.language=%lang% %mem% -jar "%jarfile%" "-Dsam.eval.mt=true" "-Dsam.eval.nolocal=true" "-server" "Dsam.agevec.cache=true" "Dsam.flowaggr.old=true"

Dabei kommt beim Aufruf der fett markierten Zeile immer die Fehlermeldung:
Unable to access jarfile .\XYZ.jar


Weiss jemand woran das liegen könnte? Ich habe versucht statt dem .\ den UNC Pfad anzugeben, dann stürzt die App ab, d.h. das geht auch nicht.

Ich bin für jede Hilfe dankbar!
 
Mag ja sein, das die Anwendung dann abstürzt. Aber das *.jar File wird gefunden. Du bist also einen Schritt weiter.
Übrigens, was heißt die App stürtz ab denn genau?
Will sagen, was für Fehlermeldungen kommen?
 
Um genau zu sein: Gar nichts!

In der Konsole findet keine Ausgabe statt und der JButton aus der GUI bleibt grau hinterlegt und nichts geht mehr, ich muss den Prozess dann im Task Manager schliessen.
Hier noch ein wenig mehr des Quelltextes:

Java:
	public GUI() {
		setTitle("OSAM Star Menu");
		setIconImage(Toolkit.getDefaultToolkit().getImage("F:\\Intern\\Programme\\Workflow-
Steuerung_SSP\\SSP_Workflow_Entwicklung_2011-08-29\\Logo_RR.jpg"));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 563, 270);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JButton btnNewButton = new JButton("Start REG");
		btnNewButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				try {
					Process p=Runtime.getRuntime().exec("\\\\Server\\Freigabe\\Programme\\Workflow-Steuerung_SSP\\SSP_Workflow_Entwicklung_2011-08-29\\start_663_WF4.bat");
					BufferedReader in = new BufferedReader(new InputStreamReader(p.getErrorStream()));
					String s;
					while((s = in.readLine()) != null) {
					System.out.println(s);
					}
					// p.destroy();
					
				}
				catch (Exception e1)
				{System.err.println(e1.toString());}
			}
		});
 
Zuletzt bearbeitet:
Kannst du bitte die Hinweise beachten, die rot überall stehen und deine Quelltext in die entsprechenden Tags legen, damit man das auch lesen kann, was du programmierst:
Java™ Quelltext ist bitte in
Java:
-Tags zu schreiben: [/COLOR]
 
Um genau zu sein: Gar nichts!
Hm, im ersten Post hast du was von einer Fehlermeldung geschrieben und jetzt auf einmal keine? Ich glaube ich verstehe noch nicht so ganz, was genau da passiert

und der JButton aus der GUI bleibt grau hinterlegt

Das ist einfach beantwortet. Du führst deinen Prozess im gleichen Thread aus, wie die GUI und somit blockiert dein Prozess so lange er läuft deine GUI. Sinnvoll wäre es bei solch "unsicheren Prozessaufrufen" oder langen Verarbeitungszeiten einen extra Thread zu starten.

BufferedReader in = new BufferedReader(new InputStreamReader(p.getErrorStream()));
Warte mal, hat 'p' nicht auch andere Streams ... den StandardStream oder so (Ist nur ne Vermutung, weil ich lang nix mehr damit gemacht habe)? Wenn deine Anwendung nix auf den ErrorStream schickt, wirst du da auch nie was erhalten.


Übrigens ... was sagt denn die Konsole, wenn du dein BAT File von Hand dort einklopfst?
 

Zurück
Oben