首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Interop: Java <-> Java

Interop: Java <-> Java
EN

Stack Overflow用户
提问于 2013-08-08 13:56:25
回答 2查看 90关注 0票数 0

我正在寻找Java应用程序'A‘和另一个Java应用程序'B’之间的通信。我收到了JNI,网络服务和其他的消息.

当前状态:我有两个独立的应用程序;目前我可以手动启动这两个应用程序,每个应用程序都运行得很好。对于每个应用程序,我都编写了一个测试类来检查每个函数和所有副作用.应用程序B实现了一个接口,所以我知道我想运行的每个函数@B!每个应用程序使用相同的接口来交换数据(在将来)。

问题:现在我想启动应用程序A(它自己启动~5个线程)。应该在定义的路径中搜索所有JAR文件并启动其中一个文件(通过UI @A进行选择)。好吧,这不是我的大问题!我的问题是:我想与加载的"JAR文件“(或者更好的:与JAR文件中的应用程序)进行交互。

问题:如何通过取消简单的工具或框架来实现交互;Webservice似乎不是动态的,(我不是Webservices方面的专家,jet!)?

对我来说重要的是以下几点:

  • 快速通信
  • 外部库的动态加载(eq.另一个Java应用程序=B)是必需的
  • 包名不重要(我想对其他开发人员开放)
  • 对其他开发人员开放(他们只需实现我的接口)

更特异的

  • A是控制器/服务器/etc;或多或少地运行@后台
  • B (ore interface的所有其他实现)是一场游戏;A中的明星,A控制的,A的停止
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-08 14:27:36

在阅读了所有说明之后,我建议在一个单独的JVM中运行“控制器”应用程序,并让它使用shell命令在单独的JVM中启动“游戏”。

如果需要“控制器”和“游戏”之间的进一步通信,则用于进程间通信的最简单技术是套接字和Java。

可以使用一种技术在同一个JVM中共存“控制器”和“游戏”,即使它们使用相同库的不同版本。它还允许在不重新启动JVM的情况下动态加载和卸载模块。这种技术是OSGi,但在我看来,掌握它需要比使用shell、套接字和/或Java更陡峭的学习曲线。

票数 0
EN

Stack Overflow用户

发布于 2014-04-25 10:43:53

我就是这样做的:

  • 为您的游戏创建一个与您必须使用的所有方法的接口,您将提供
  • 编写实现接口的game.class代码
  • 生成一个新的游戏类型对象(游戏g= null;)
  • 在这里,您必须创建实例,您可以编写:G=新的游戏();
  • 我用"instanceof“检查了类型。
  • 密码很快就会..。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18127964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档