我有一个 java 应用程序,它生成信息并在屏幕上打印出这些信息。我的问题是获取这些信息并将它们传输到另一个 java 应用程序。这个应用程序有一个自己的 main。我知道它看起来太笼统但我不知道如何更好地解释这个案例研究
问问题
111 次
5 回答
5
您的问题是笼统的,但这里有几个指针(从最底层到最全面):
控制台中的管道输出:
$ java -jar first-app.jar | java -jar second-app.jar
在这种情况下,所有控制台输出
first-app
都将被重定向到second-app
. 这需要两个应用程序在同一台机器上工作。以下所有解决方案都允许跨网络分发生产者和消费者。socket - Java 原生且很好地支持它们
- rmi - 通过二进制协议进行 Java 到 Java 通信的事实标准,类似rpc
- web-services -基于xml的基于http、soap或rest的协议
- jms - 通过所谓的消息代理异步发送消息
- 共享数据库/文件/内存,例如使用hazelcast
于 2012-07-07T11:06:17.740 回答
0
您可以使用套接字(这是两个进程可以相互通信的方式之一),您可以在此处找到示例:http: //docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
于 2012-07-07T11:06:39.843 回答
0
在我看来,您正在寻找 IPC;进程间通信。
还有更多选项,但 Java RMI(远程方法调用)可以做到,它隐藏了低级套接字实现:http ://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html
于 2012-07-07T11:06:49.420 回答
0
如果您有第二个程序的源代码,您可能只需将第一个程序的输出重定向到您的第二个程序:http://en.wikipedia.org/wiki/Redirection_(computing)
于 2012-07-07T11:08:24.827 回答