如何从C#执行Java程序?

2022-09-01 18:11:01

想知道是否有人知道在运行时从C#代码执行Java命令行程序的好方法?

它与执行本机.EXE文件相同吗?

它会同步运行还是异步运行(这意味着我可能需要等待线程完成才能找到结果)

具体来说,我想从服务器端的Web应用程序中调用一个小实用程序(碰巧是用Java编写的),以对文本文件进行一些处理。我想等待它完成,因为在Java程序处理完文本文件后,我想抓取处理后的文本,并在C#应用程序中使用它。


答案 1
var processInfo = new ProcessStartInfo("java.exe", "-jar app.jar")
                      {
                          CreateNoWindow = true,
                          UseShellExecute = false
                      };
Process proc;

if ((proc = Process.Start(processInfo)) == null)
{
    throw new InvalidOperationException("??");
}

proc.WaitForExit();
int exitCode = proc.ExitCode;
proc.Close();

答案 2

如果您需要比启动外部程序更精细的控制,那么请考虑IKVM - http://www.ikvm.net/ - 它提供了一种在.NET世界中运行Java程序的方法。


推荐