c# - 使用 System.Diagnostics.Process 启动 Jar 文件

标签 c# java system.diagnostics

我有一个 jar 文件,我想在 C# 中运行它。

这是我目前所拥有的:

clientProcess.StartInfo.FileName = @"java -jar C:\Users\Owner\Desktop\myJarFile.jar";
            clientProcess.StartInfo.Arguments = "[Something]";

            clientProcess.Start();
            clientProcess.WaitForExit();

            int exitCode = clientProcess.ExitCode;

不幸的是,我得到“系统找不到指定的文件”,这是有道理的,因为它不是一个文件,而是一个命令。

我在网上看到代码告诉你使用:

System.Diagnostics.Process.Start("java -jar myprog.jar");

但是我需要返回码并且我需要等待它退出。

谢谢。

最佳答案

终于解决了。文件名必须是 java,参数必须包含 jar 文件的位置(以及您要传递给它的任何参数)

System.Diagnostics.Process clientProcess = new Process();
clientProcess.StartInfo.FileName = "java";
clientProcess.StartInfo.Arguments = @"-jar "+ jarPath +" " + argumentsFortheJarFile;
clientProcess.Start();
clientProcess.WaitForExit();   
int code = clientProcess.ExitCode;

关于c# - 使用 System.Diagnostics.Process 启动 Jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997915/

相关文章:

c# - 持久数据库连接与打开和关闭

java - 如何使用 JMockit 模拟实例化具有任何非空参数的新对象

java - 使用 HTML 自定义格式的 Log4j.properties 进行日志记录

java - 运行 javafx 可执行 jar 文件时出现多个错误

c# - 使用EventFlow监控本地机器上的ETW事件

asp.net-core - 如何获取当前的TraceId和SpanId

c# - 为什么 ClipToBounds = false 不起作用?

c# - ASP.net identity : How to get current IdentityUser (ApplicationUser)? UserManager.FindById 在哪里?

c# - 在 dataGridView 中保存更改

c# - 自动将 System.diagnostics.trace 消息记录到 Nlog 目标