Вызовите метод Java из .Net - PullRequest
1 голос
/ 16 марта 2019

Я должен вызвать метод Java из консольного приложения C # .Net.

Решение по следующей ссылке

Process myProcess = new Process();
Process.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "java";
myProcess.StartInfo.Arguments = "-jar D:\\myjava.jar";
myProcess.Start();e

не позволяетполезное возвращаемое значение (например, строковый объект) из файла jar в консольное приложение .Net.

Другой подход мог бы использовать IKVM , но разработки закончились, и похоже, чтоold для использования в стабильном корпоративном решении.

Как я могу вызвать метод java и строку geta в качестве значения результата?

1 Ответ

2 голосов
/ 16 марта 2019

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.

...