# Runtime.getRuntime().exec(cmd); auf windows ...



## MrG (25. Apr 2010)

Hallo,
meine Java-Applikation schreibt eine LaTeX-Datei.
Diese soll dann in eine pdf-Datei konvertiert werden.
Unter Linux klappt das hervorragend, unter Windows klappt das nicht :-( 


```
String path = zielpfad;
File fl = die_tex_datei;
try {
				if(System.getProperty("os.name").contains("nux")){
					Runtime.getRuntime().exec("pdflatex -output-directory "+path+" "+fl.toString());
				}else{
                                        //TODO: NUR ZUM TESTEN NOCH HARDVERDRAHTET!!
//					String strcommand = 
//						"\"C:\\Programme\\MiKTeX 2.8\\miktex\\bin\\pdflatex.exe\" "+
//						"-output-directory "+
//						"\"C:\\Dokumente und Einstellungen\" "+ 
//						"-interaction=batchmode "+
//						"\"C:\\Dokumente und Einstellungen\\AA.tex\"";

					String strcommand = 
						"\"C:\\Dokumente und Einstellungen\\startpdflatex.bat\"";
					Runtime.getRuntime().exec(strcommand);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
```

Das erwähnte Batch-Script startpdflatex.bat sieht so aus:

[###SCRIPTCODE###]

"C:\Programme\MiKTeX 2.8\miktex\bin\pdflatex.exe" -output-directory "C:\Dokumente und Einstellungen" -interaction=batchmode "C:\Dokumente und Einstellungen\AA.tex"

> usermessage.vbs ECHO WScript.Echo^( "Hallo" ^& vbCrLf ^& "startpdflatex" ^)
WSCRIPT.EXE usermessage.vbs
del usermessage.vbs

[###SCRIPTCODE###]

Es funktioniert einwandfrei, wenn ich es von der Konsole aus starte.
Wenn es mit dem obigen Code gestartet wird, läuft es zwar durch ( die usermessage poppt auf ) , 
aber es wird keine pdf-Datei erzeugt .....  :-(


Vielleicht bin ich jetzt schon betriebsblind und sehe einen einfachen Fehler nicht.
Könnt ihr mich wieder sehend machen???


Vielen Dank für jeden Tipp.

Beste Grüße
Jochen


----------



## faetzminator (25. Apr 2010)

Versuchs mit Java SE 6 API Doc - java.lang.Runtime#exec(java.lang.String[])


----------



## FArt (26. Apr 2010)

Batchfiles kannst du nicht direkt ausführen, dazu brauchst du ein CMD Konsolenfenster.

java execute batch - Google-Suche

Und ja, benutze die Methode, die fatzminator vorgeschlagen hat, besonders wenn Parameter oder Pfade Leerzeichen enthalten können.


----------

