1

次のようなC#メソッドでzipファイルをjarファイルにコピーしようとしています。

ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "java.exe";
start.WorkingDirectory = @"C:\mydir\";
start.Arguments = @" -jar example.jar example.zip";
Process java = new Process();
java.StartInfo = start;
java.Start();

var stdOut = java.StandardOutput.ReadToEnd();
java.WaitForExit();
Console.WriteLine(java.ExitCode.ToString());

問題は、このエラーが発生することです。

エラー:jarfileexample.jarにアクセスできません

example.jarとexample.zipの両方が作業ディレクトリに存在することを確認し、実行してほぼ同一の.jarファイルを作成できるバッチファイルも作成しました。

jar -cf example.jar test.zip

私はこのコードで問題なくこれを実行することができました:

const string batchFile = @"C:\mydir\batJar.bat";
System.Diagnostics.Process.Start(batchFile);

私の環境変数(Windows 7)も適切に設定されています。

4

2 に答える 2

0

バッチファイルは実行可能ファイル「jar」を使用しますが、C#プログラムは実行可能ファイル「java.exe」を使用します。

試す:

start.FileName = "jar";
于 2013-03-20T21:31:46.430 に答える
0

行の変更:

2-ファイル名

4-引数

私の問題を修正しました:

  ProcessStartInfo start = new ProcessStartInfo();
  start.FileName = "jar";
  start.WorkingDirectory =@"C:\myDir";
  start.Arguments = @" cf myJar.jar test.zip";**
  start.UseShellExecute = false;
  start.RedirectStandardInput = true;
  start.RedirectStandardOutput = true;

  Process java = new Process();
  java.StartInfo = start;
  java.Start();

  var stdOut = java.StandardOutput.ReadToEnd();
  java.WaitForExit();
  Console.WriteLine(java.ExitCode.ToString());

皆さんの助けに感謝します。

于 2013-03-21T15:32:57.340 に答える