访问其他Java进程

时间:2009-08-20 16:22:42

标签: java process

我正在编写一个程序来启动另一个运行某些代码的java进程。 有没有什么方法可以“调用”该进程来调用正在运行的类的方法?

6 个答案:

答案 0 :(得分:7)

您将不得不使用某种形式的远程处理。那可能是:

  • RMI;
  • Web服务(JAX-WS,Spring Web Services等);
  • 套接字;
  • 嵌入式Web容器;

答案 1 :(得分:1)

他们将能够通过管道或插座进行通信。您可以在其上创建自己的通信协议,也可以使用RMI之类的内容。

答案 2 :(得分:0)

RMI是一种简单的Java远程处理技术。这本身并不能解决当您选择大规模客户端和服务器方案时会出现的问题,例如发生错误时的故障转移。

因此,当需要一些强烈的东西时,通常的模式是在服务器端使用一些“App Server”技术。您可以使用EJB 3或Spring等框架快速完成远程访问服务,或者使用JMS等技术知识。

我的建议是咬紧牙关并立即超越RMI,这些天App Server和框架的成熟,以及低成本和免费App Server的可用性使得进入成本相当低。

答案 3 :(得分:0)

另一种方法是Jini

答案 4 :(得分:0)

有一整类解决方案称为IPC,进程间通信。这些包括共享内存和管道,网络通信和远程过程框架。在java中,您可以使用各种解决方案。如果你已经熟悉网络,你可以通过这种方式传递消息,否则你可能想要设置异步消息队列或管道,你可能会发现共享内存容易出错,而像JINI这样的远程过程太复杂而无法设置并保持。

答案 5 :(得分:0)

另一个解决方案是JMS,尽管不是那么简单。如果通信的性质主要是传递信息或小对象,这可能是有用的。