创建一个java应用程序以从另一个java应用程序获取信息

创建一个java应用程序以从另一个java应用程序获取信息,java,pipe,socket,rmi,rpc,web-services,xml,http,soap,rest,jms,hazelcast,Java,Pipe,Socket,Rmi,Rpc,Web Services,Xml,Http,Soap,Rest,Jms,Hazelcast,我有一个java应用程序,它可以生成信息并在屏幕上打印这些信息。我的问题是将这些信息输出到另一个java应用程序。这个应用程序有自己的主应用程序。我知道它看起来太笼统了,但我不知道如何更好地解释这个案例研究你的问题是一般性的,但这里有几个要点(从最低级到最全面): 控制台中的输出: $ java -jar first-app.jar | java -jar second-app.jar 在这种情况下,第一个应用程序的所有控制台输出将重定向到第二个应用程序的标准输入。这要求两个应用程序在同一台

我有一个java应用程序,它可以生成信息并在屏幕上打印这些信息。我的问题是将这些信息输出到另一个java应用程序。这个应用程序有自己的主应用程序。我知道它看起来太笼统了,但我不知道如何更好地解释这个案例研究

你的问题是一般性的,但这里有几个要点(从最低级到最全面):

  • 控制台中的输出:

    $ java -jar first-app.jar | java -jar second-app.jar
    
    在这种情况下,
    第一个应用程序
    的所有控制台输出将重定向到
    第二个应用程序
    的标准输入。这要求两个应用程序在同一台机器上工作。以下所有解决方案都允许跨网络分发生产者和消费者

  • -Java以本机方式很好地支持它们

  • -通过二进制协议进行Java到Java通信的事实标准,如
  • -基于协议的,或
  • -通过所谓的message broker异步发送消息
  • 共享数据库/文件/内存,例如使用

您的问题是一般性的,但这里有几个要点(从最低级到最全面):

  • 控制台中的输出:

    $ java -jar first-app.jar | java -jar second-app.jar
    
    在这种情况下,
    第一个应用程序
    的所有控制台输出将重定向到
    第二个应用程序
    的标准输入。这要求两个应用程序在同一台机器上工作。以下所有解决方案都允许跨网络分发生产者和消费者

  • -Java以本机方式很好地支持它们

  • -通过二进制协议进行Java到Java通信的事实标准,如
  • -基于协议的,或
  • -通过所谓的message broker异步发送消息
  • 共享数据库/文件/内存,例如使用
您可以使用socket连接到它(这是两个进程相互通信的方式之一),您可以在这里找到一个示例:

您可以使用socket连接到它(这是两个进程相互通信的方式之一),您可以在这里找到一个示例:

我觉得你在找IPC;进程间通信


还有更多的选择,但是JavaRMI(远程方法调用)可以做到这一点,而且它隐藏了底层套接字实现:

我觉得你在寻找IPC;进程间通信


有更多的选项,但Java RMI(远程方法调用)可以做到这一点,它隐藏了低级套接字实现:

您可以使用,以便将您需要的数据持久化到文件中,然后其他应用程序从文件中读取该数据。这是最简单的解决方案,在更复杂的场景中,您可以使用您可以使用的

,以便将您需要的数据持久化到文件中,然后其他应用程序从文件中读取该数据。这是最简单的解决方案,在更复杂的场景中,您可以使用

如果您有第二个程序的源,您可以将第一个程序的输出重定向到第二个程序:

如果您有第二个程序的源,您可以将第一个应用程序的输出重定向到第二个应用程序中:

两个应用程序的源代码都在您的控制下吗?是的…它完全在我的控制下…两个应用程序的源代码都在您的控制下吗?是的…它完全在我的控制下…如果您不需要按原样读取文件,此解决方案将起作用由writer应用程序编写。如果您不需要在writer应用程序编写文件时读取该文件,则此解决方案将起作用。好吧,尝试一下;不太复杂,试试看;这并不复杂