2016-10-10 222 views
-2

例如:我想將目錄改爲:C:/ temp/hacking/passsword 並執行如下命令:java helloworld arg1 arg2 我該如何用java做到這一點?如何更改目錄並在該目錄上運行命令?

+0

「改變目錄」是什麼意思?你的程序是否跟蹤「當前目錄」? –

+0

在命令提示符下鍵入'Help'。對於列出的每個命令,請鍵入'help '(例如'help dir')或' /?'(例如'dir /?')。 'cd C:\ temp \ hacking \ passsword'然後'c:\ FolderJavaInstalledIn \ java Helloworld Arg1 arg2'。 '\'是窗口中的路徑分隔符。 –

+0

Java程序不是一個shell。雖然存在「當前目錄」(user.dir系統屬性的值),但可以使用「Runtime」或「ProcessBuilder」爲每個啓動的進程提供工作目錄。 –

回答

2

請嘗試使您的問題更清楚,並在下次點。

試試這個:

Process pr = builder.start(); 
    String[] commands = {"commands"}; 
    ProcessBuilder builder = new ProcessBuilder(commands); 
    builder.directory(new File(/one/two/dir)); 
    pr = builder.start(); 

或者如果你喜歡這種方法:

ProcessBuilder builder = new ProcessBuilder(
      "cmd.exe", "/c", "cd \"C:\\Users\\Test\" && dir"); 

    Process pr = builder.start(); 

有類似這樣的一個位置上有這麼幾種其他的問題,我建議你也去檢查他們出去得到一個更好的主意。

+0

其實,你不能運行'cd',因爲它是一個shell內建的,即使你可以,它也只適用於子進程。它不會轉回到您啓動的Java程序或後續子進程。 –

+0

我不認爲用'Runtime.exec()'運行'cd'會對後續調用產生任何影響。 –

+0

對不起,我有點困惑,ProcessBuilder會起作用。 – Athamas

相關問題