1

我开发了一个 Java 应用程序。这个应用程序基本上需要一个名为“input”的字符串来处理。将该字符串提供给该程序后,返回“是”或“否”取决于字符串。

我也有一个 C# 应用程序。此 c# 应用程序返回一个名为“result”的字符串。我想将该“结果”用作我的 Java 应用程序的“输入”。然后将 Java 的返回值(“是”或“否”)返回给 C#。我怎样才能做到这一点?如何在这些程序之间建立连接?我不想为此使用任何网络服务。

我正在为 Java 使用 Eclipse,为 C# 使用 Visual Studio。

我会很感激你的帮助。

谢谢!

(已编辑)额外信息:

C#应用程序是表单应用程序,具有可视化界面,将XML(由用户提供)转换为字符串,并应将其传递给Java。Java 应用程序是控制台应用程序,并检查字符串在某些方面是否正确。两个程序都在同一台机器上。我不喜欢使用任何在线服务器或类似的东西。

4

3 回答 3

3

如果 Java 应用程序是控制台应用程序;然后使用 System.Diagnostics.Process 调用创建应用程序实例并重定向输入和输出流。

像这样的东西:

var process = System.Diagnostics.Process.Start(new ProcessStartInfo { RedirectStandardInput = true, RedirectStandardOutput = true, FileName = "javaapp.exe" });
process.StandardInput.WriteLine("Hello");
var response = process.StandardOutput.ReadLine();
于 2013-07-19T13:39:50.557 回答
1

在您的 C# 表单中,您可以这样做:

System.Diagnostics.Process.Start(foo, bar);

fooJava 应用程序的完整路径是哪里bar,结果的值是哪里。这相当于在带有参数的提示中调用应用程序。换句话说,这与打开提示并输入相同:

c:\> 富吧

如果您的程序没有使用包装 exe,那么您可能想要打开 Java.exe - 只需调整您传递给该Start方法的内容。

于 2013-07-19T13:35:08.780 回答
0

最简单的方法是使用基本的 TCP 连接,如果你用谷歌搜索的话,这里有很多例子。

对于 C# concider:

http://www.codeproject.com/Articles/1415/Introduction-to-TCP-client-server-in-C

对于 Java

http://systembash.com/content/a-simple-java-tcp-server-and-tcp-client/

于 2013-07-19T13:28:34.797 回答