将文件复制到.jar文件会导致错误

时间:2013-03-20 21:17:11

标签: c# java

我正在尝试使用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());

问题是我收到此错误:

错误:无法访问jarfile example.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)也已正确设置。

2 个答案:

答案 0 :(得分:0)

您的批处理文件使用可执行文件“jar”,但您的C#程序使用可执行文件“java.exe”。

尝试:

start.FileName = "jar";

答案 1 :(得分:0)

更改行:

2 - 文件名

4-Arguments

解决了我的问题:

  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());

感谢大家的帮助。