2013-11-01 49 views
1

我正在學習關於這個主題在這個頁面,但我找不到解決方案,我如何使用ProcessBuilder在cmd中執行程序?我想使用命令行壓縮,打開,刪除7zip文件。 我有這樣的代碼作爲例子,但doesn't工作,CMD啓動,但doesn't創建壓縮文件:Java中的ProcessBuilder

String[] commands= 
    {"cmd.exe", "7za", "a", "-t7z", "test.7z", "Test.txt", "/C", "start"}; 
ProcessBuilder pb = new ProcessBuilder(commands); 

回答

3

的問題是Java(start()方法缺失),一點點一點點在7za(命令行亂碼)

new ProcessBuilder("7za", "a", "-t7z", "test.7z", "Test.txt").start(); 

該命令僅如果7za在PATH ...

如果沒有,你必須指定它的路徑,在Windows下:

new ProcessBuilder(
    "C:/Program Files/7-Zip/7za.exe", "a", "-t7z", "test.7z", "Test.txt").start(); 

七拉鍊幫助:

7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 

Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...] 
     [<@listfiles...>] 

<Commands> 
    a: Add files to archive 
    ... 
<Switches> 
    ... 
    -t{Type}: Set type of archive 
+0

我得到這個:不能運行程序 「7za」:CreateProcess的錯誤= 2,薩爾瓦多SISTEMA沒有puede encontrar EL檔案館especificado – Lindsay

+0

你是windows下,路徑可能是C: \ Program Files \ 7-Zip \ 7z.exe – Aubin

+0

是的,它的工作原理。 Thnks – Lindsay