日期:2014-05-20  浏览次数:20693 次

两个 JVM 通信 问题?
java xxx.class start

java xxx.class stop


怎样进行JVM通信,不希望用rmi,socket,web server等 因为不希望用到端口.

------解决方案--------------------
呵呵,类似tomcat的吧
用socket的方法最简单
我所有的项目都是这样实现的,java不像c,可以获取句柄,从而实现关闭运行的程序
------解决方案--------------------
用Runtime方式吧...
System.in
------解决方案--------------------
我的拙见:
1、使用Socket对接管道流,这样根据端口号分配不一样,Socket的两端分别在两个JVM中可以实现通信
2、其中一个JVM使用序列化,将通信数据以txt文本或者xml方式序列化到磁盘,另外一个JVM将磁盘上的数据反序列化回来达到通信目的

------解决方案--------------------
用公共文件来通信.
A进程读写完要关闭.
B进程读写完要关闭.
------解决方案--------------------
我处理过这个,启动JVM时候保存他进程的PID(用注册表或者文件都行),然后根据这个PID去找JVM,用Runtime.getRuntime().exec("******");执行关闭和启动,要共享数据的话也可以写注册表或者文件,但是要注意同步(可以用文件锁来控制同步)。