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

标签 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)也设置正确。

最佳答案

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

尝试:

start.FileName = "jar";

关于c# - 将文件复制到 .jar 文件会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534902/

相关文章:

java - Java 中的 HTTP POST 请求 .setRequestMethod() 不执行任何操作

java - 非静态初始化器奇怪的行为

c# - 如何查看 Parallel.ForEach 循环中引发的线程数?

java - JSlider 绘制不完整,与 Netbeans 配合使用

java - 为什么 List 中没有 tail() 或 head() 方法来获取最后一个或第一个元素?

c# - ITextSharp,定位文本

java - 将记录存储在 for 循环数组中并显示它们

c# - 如何将 [ScaffoldColumn(false)] 设置为动态数据的默认值?

c# - 旋转像素阵列的好方法是什么?

c# - Convert.ToDateTime 在下午日期/时间值上导致 FormatException