1

このページでこのテーマについて勉強していますが、解決策が見つかりません。ProcessBuilder を使用して cmd でプログラムを実行するにはどうすればよいですか? コマンドラインを使用して7zipでファイルを圧縮、開き、削除したい。私は例としてこのコードを持っていますが、動作しません.cmdは起動しますが、圧縮ファイルを作成しません:

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

1 に答える 1

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 ヘルプ:

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
于 2013-11-01T17:12:28.107 に答える