2013-11-01 50 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