从 .Net 调用 Java 方法
Call Java method from .Net
我必须从 C# .Net concole 应用程序调用 java 方法。
解决方法在下面link
Process myProcess = new Process();
Process.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "java";
myProcess.StartInfo.Arguments = "-jar D:\myjava.jar";
myProcess.Start();e
不允许有用的 return 值(例如字符串对象)从 jar 文件到 .Net 控制台应用程序。
可以使用另一种方法 IKVM,但开发已经结束,在稳定的企业解决方案中使用它似乎已经过时了。
如何调用 java 方法并获取字符串作为结果值?
IKVM 相当重量级(更不用说停产了)所以如果你能避免它那么它可能会更容易。
如果 Java 程序可以在 STDOUT 上生成其输出(即写入控制台),那么您可以通过 Process
对象读取该输出。
例如:
Process myProcess = new Process();
Process.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "java";
myProcess.StartInfo.Arguments = "-jar D:\myjava.jar";
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.Start();
var output = process.StandardOutput.ReadToEnd();
您可能需要尝试在 ProcessStartInfo
上设置其他属性。
我必须从 C# .Net concole 应用程序调用 java 方法。
解决方法在下面link
Process myProcess = new Process();
Process.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "java";
myProcess.StartInfo.Arguments = "-jar D:\myjava.jar";
myProcess.Start();e
不允许有用的 return 值(例如字符串对象)从 jar 文件到 .Net 控制台应用程序。
可以使用另一种方法 IKVM,但开发已经结束,在稳定的企业解决方案中使用它似乎已经过时了。
如何调用 java 方法并获取字符串作为结果值?
IKVM 相当重量级(更不用说停产了)所以如果你能避免它那么它可能会更容易。
如果 Java 程序可以在 STDOUT 上生成其输出(即写入控制台),那么您可以通过 Process
对象读取该输出。
例如:
Process myProcess = new Process();
Process.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "java";
myProcess.StartInfo.Arguments = "-jar D:\myjava.jar";
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.Start();
var output = process.StandardOutput.ReadToEnd();
您可能需要尝试在 ProcessStartInfo
上设置其他属性。