我正在尝试使用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)也已正确设置。
答案 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());
感谢大家的帮助。