# CMD direkt in Java ausführen



## Johnny919 (12. Sep 2011)

Hallo Leute,

ich möchte folgende schritte direkt in Java ausführen, ohne das die Konsole aufgeht.
Ich weiß dass dies möglich ist, da ich es schon mal gemacht habe, aber leider habe ich die Lösung vergessen.

Ich möchte folgende schritte, in CMD ausführen und ggf. diese auch zu einem einzigen zusammenfassen.


```
c:
cd microsoft office
cd office12
outlook.exe /cleanprofile
```

Danke für eure Hilfe

Jonatan


----------



## Michael... (12. Sep 2011)

Geht mit Runtime.exec() bzw. ProcessBuilder


----------



## Basti91 (12. Sep 2011)

Sollte so funktionieren


```
ProcessBuilder builder = new ProcessBuilder( "cmd", "/c","outlook.exe /cleanprofile"); 
	    builder.directory( new File("c:\microsoft office\office12") ); 

		try {
			Process p = builder.start();
                }
                catch (IOException e) {
			e.printStackTrace();
                }
```


----------



## Johnny919 (12. Sep 2011)

Bei dem Rot markierten zeigt er mir die ganze Zeit ein Fehler denn ich nicht beheben kann 

ganz genau sagt er mit

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

	at reminder.cmd.main(cmd.java:13)




Basti91 hat gesagt.:


> Sollte so funktionieren
> 
> 
> ```
> ...


----------



## Andi_CH (12. Sep 2011)

Vermeide doch einfaqch die \ Notation.

Java kommt wunderbar mit "C:/irgendwas/irgendwo/irgendxx/" zurecht

ansonsten braucht esimmer zwei \ ...


----------



## Basti91 (12. Sep 2011)

Achso stimmt das hatte ich vergessen. Natürlich musst du um ein \ in einem String zu generieren immer \\ verwenden oder eben wie Andi_CH schon erwähnt hat / verwenden


----------



## Johnny919 (12. Sep 2011)

wenn ich die \ in  / ändere oder zwei \\ hinsetzte bekomme ich immer die Meldung das, dass Verzeichnis nicht gültig ist

java.io.IOException: Cannot run program "cmd" (in directory "c:\microsoft office\office12"): CreateProcess error=267, Der Verzeichnisname ist ungültig
	at java.lang.ProcessBuilder.start(Unknown Source)
	at reminder.cmd.main(cmd.java:16)
Caused by: java.io.IOException: CreateProcess error=267, Der Verzeichnisname ist ungültig
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 2 more

danke für die Hilfe aber das haut auch nicht hin


----------



## Basti91 (12. Sep 2011)

Bist du dir sicher, dass der Pfadname stimmt?
Hast du Office wirklich direkt auf C: installiert?


----------



## Johnny919 (12. Sep 2011)

Hast recht es liegt unter dem Pfad

C:\Programme\Microsoft Office\Office12\OUTLOOK.EXE ...

aber ich dachte das sage ich mit der Zeile


```
builder.directory( new File("c:/microsoft office/office12") );
```


----------



## Basti91 (12. Sep 2011)

```
builder.directory( new File("c:/programme/microsoft office/office12") );
```

ersetzt dir das "cd ", dort würde es ja auch nicht funktionieren wenn du den falschen bzw. lückenhaften Pfad übergibst


----------



## Michael... (12. Sep 2011)

Johnny919 hat gesagt.:


> Hast recht es liegt unter dem Pfad
> 
> C:\Programme\Microsoft Office\Office12\OUTLOOK.EXE ...
> 
> ...


War das eine Frage??
Unten wird von einem Verzeichnis C:/Microsoft... ausgegangen - welches so nicht existiert.
Das korrekte Verzeichnis steht ja oben.


----------



## Johnny919 (12. Sep 2011)

Tut mir leid, das kommt davon wenn die Copy-Pase Rotiere schon drin ist
... klar liegt Office unter Programme

Danke für die schnelle Hilfe


----------

