Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA—使一个程序与另一个程序交互_Java_Ipc - Fatal编程技术网

JAVA—使一个程序与另一个程序交互

JAVA—使一个程序与另一个程序交互,java,ipc,Java,Ipc,我正在努力学习如何使不同的程序相互作用,但在网上找到关于这方面的信息对我来说是不可能的。我是一名自学成才的Flash/PHP程序员,最近学习了基本java 假设有一个用Java编写的游戏,我可以访问它的开源。如果我想为它做每秒帧数的显示,我现在就可以用我现有的知识轻松地做到这一点。我打开Eclipse,检查代码并找到正确放置FPS计数器的位置,重新编译游戏并使用新的重新编译版本 但这不是我现在想学的。我想做的是创建一个独立的.exe或.jar文件,当我运行它时,它将在游戏中显示FPS,而无需我重

我正在努力学习如何使不同的程序相互作用,但在网上找到关于这方面的信息对我来说是不可能的。我是一名自学成才的Flash/PHP程序员,最近学习了基本java

假设有一个用Java编写的游戏,我可以访问它的开源。如果我想为它做每秒帧数的显示,我现在就可以用我现有的知识轻松地做到这一点。我打开Eclipse,检查代码并找到正确放置FPS计数器的位置,重新编译游戏并使用新的重新编译版本

但这不是我现在想学的。我想做的是创建一个独立的.exe或.jar文件,当我运行它时,它将在游戏中显示FPS,而无需我重新编译它。我们经常看到人们这样做。我现在玩的是新维加斯,它有一个mod,可以打开一个.exe文件,在游戏中显示一个覆盖地图

然而,我不知道如何实现这样的目标。这些计划背后的逻辑究竟是什么?我应该阅读什么主题来理解如何做到这一点

如果FPS示例太复杂,我将尝试一个更简单的示例。我有一个打印Hello World的程序。我想制作另一个运行Hello World的程序,但将字符串更改为其他内容。再说一次,我甚至不知道从哪里开始


谢谢

您要查找的搜索关键字是“IPC”(进程间通信)。有许多解决方案,请参阅和了解一些起点

大多数解决方案涉及以下一种或多种形式:

  • 插座
  • 共享内存
  • 命名管道(在支持命名管道的平台上)
  • 在文件/数据库中存储数据
  • 其他自动化(例如Windows上的OLE、toolkit自动化等)
  • 更多
在您的情况下,基于基本网络套接字的解决方案将非常简单(您的游戏运行一个基本服务器,您的监控应用程序连接并定期查询游戏提供的帧速率;这允许本地和远程监控,并且只需相当少的代码)。这里有一些相关的搜索起点


对于您特定的“hello world”示例,这实际上是另一种情况。这只需让打印程序获取指定字符串的命令行参数,并让调用程序使用适当的命令行参数执行即可完成。

您要查找的搜索关键字是“IPC”-非常感谢,我真的很难找到我需要进一步研究的合适的关键词