2011-10-04 56 views
1

執行Unix命令在Java中我如何可以執行以下shell命令:從Java

osmosis --read-xml file="planet-latest.osm" --bounding-polygon file="country.poly" --write-xml file="australia.osm" 

我試着用這個代碼執行它:

Process proc = Runtime.getRuntime().exec("osmosis --read-xml file="planet-latest.osm" --bounding-polygon file="country.poly" --write-xml file="australia.osm""); 
InputStream output = proc.getInputStream(); 

但似乎Unix命令不執行。

回答

2

您可能需要指定完整的滲透路徑。

+2

另外,不要忘了逃脫雙引號,或者更好,使用超負荷陣列exec方法來傳遞參數。 –

+0

此外,我建議他使用[Commons-Exec](http://commons.apache.org/exec/tutorial.html)而不是'Runtime.exec()'或'ProcessBuilder'。 – Barend

1

嘗試逃脫雙「

Process proc = Runtime.getRuntime().exec("osmosis --read-xml file=\"planet-latest.osm\" --bounding-polygon file=\"country.poly\" --write-xml file=\"australia.osm\"")

+0

在Java中,字符串文字有以「(雙引號)開頭,您的示例從單引號開始」。 –