如何使JAVA两个进程之间传递对象?
如何用WEB方式对某一SERVER程序进行控制?
现在只是想到在SERVER程序上监听一个端口,然后用SERVLET向这个端口发数据,请问有没有更好更直接的办法?

解决方案 »

  1.   

    如何使JAVA两个进程之间传递对象?进程间通信,是通过共享对象进行的,对象共享也就是,先创建一个对象,然后用这个对象作为线程的参数,来创建两个新线程,这样在两个线程里访问的其实是一个对象。因为,在java中对象作参数时,是引用调用,而不是复制调用。例:创建对象A,然后把A作为函B的参数,那么在函数B中改变A的值,再在函数B外引用A的值时,这时候A的值也已改变,换句话说,在B中引用的只是A对象在内存中的地址,而不是实际的值。
      

  2.   

    楼上说的是线程,而非进程.线程之间很容易通过对象来通信.但一个进程相当于一个独立程序,如何与另一JAVA程序共享对象?
      

  3.   

    楼主已经用了最好的方法
    socket
      

  4.   

    RMI好像到了底层也是socket实现的吧?
      

  5.   

    socket,rmi
     如何用WEB方式对某一SERVER程序进行控制?
    像你的这个需求不一定要在两个进程当中嘛,可以自己写一个启动框架将web容器和你的应用一起拉起来(这就是在一个虚拟机当中了)
    在一个jvm中就好控制了,可以提供接口让用户修改配置就行。
      

  6.   

    要是WIN32系列的话就好办,方法一堆,诸如信号灯、消息队列、邮件槽、Socket什么之类的。既然是Java,那么就用不直接依赖操作系统的,高级一些的方法吧,Socket不错,但是跨平台的兼容性不是很好,最好是考虑HTTP或基于HTTP的更高级的协议,RMI-IIOP和SOAP都可以吧,RMI-IIOP是专门被设计用来做Java进程间通讯的,SOAP则使用XML作为对象的序列化载体,应用更加灵活。。
      

  7.   

    Socket/RMI/WEBService/WebServer, 这些都可以实现直接的数据交换
    Database/File, 这些可以实现间接的数据交换看你的业务是否要求实时, 如果不需要, 用数据库交换比较简单
      

  8.   

    谢各位!我也想到了可以直接在程序里面用UrlConnection类来访问SELVLET进行交互,能交互就可以实现数据交换了,而且程序和WEBSERVER可以完全分离开.另外 TinyJimmy(Jimmy) 的思路很好,呵呵.liaoxingya276(独孤过客) 写启动框架的做法我也想过,但具体怎么写还不是很清楚,所以放弃了.谢谢.