【问题标题】:ProcessBuilder in JavaJava 中的 ProcessBuilder
【发布时间】:2013-11-01 17:10:26
【问题描述】:

我正在这个页面中研究这个主题,但我找不到解决方案,如何使用 ProcessBuilder 在 cmd 中执行程序?我想使用命令行使用 7zip 压缩、打开、删除文件。 我有此代码作为示例,但不起作用,cmd 启动但不创建压缩文件:

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

【问题讨论】:

    标签: java processbuilder 7zip


    【解决方案1】:

    问题在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
    

    【讨论】:

    • 我知道了:无法运行程序“7za”:CreateProcess 错误=2,El sistema no puede encontrar el archivo especificado
    • 你在windows下,路径可能是C:\Program Files\7-Zip\7z.exe
    • 在windows上,只有Cmd.exe需要\,C中的fopen()或Java中的ProcessBuilder可以使用/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    相关资源
    最近更新 更多