【问题标题】:JAVA - make one program interact with anotherJAVA - 使一个程序与另一个程序交互
【发布时间】:2014-04-05 20:11:49
【问题描述】:

我正在尝试学习如何让不同的程序相互交互,但我无法在网上找到这方面的信息。我是一名自学的 Flash/PHP 程序员,最近学习了基本的 java。

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

不过,这不是我现在想要学习的。我想做的是制作一个独立的 .exe 或 .jar 文件,当我运行它时,它会在游戏中显示 FPS 而无需我重新编译它。我们看到人们一直在这样做。我现在正在玩新维加斯,它打开一个 .exe 文件,该文件在游戏中显示覆盖图。

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

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

谢谢

【问题讨论】:

    标签: java ipc


    【解决方案1】:

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

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

    • 套接字
    • 共享内存
    • 命名管道(在支持它的平台上)
    • 在文件/数据库中存储数据
    • 其他自动化(例如 Windows 上的 OLE、工具包自动化等)
    • 更多...

    在您的情况下,基于基本网络套接字的解决方案将非常简单(您的游戏运行一个基本服务器,您的监控应用程序连接并定期查询您的游戏提供的帧速率;这允许本地和远程监控,并涉及相当少量的代码)。在Java Interprocess Communication有一些相关的搜索起点。

    对于您特定的“hello world”示例,这实际上是不同的情况。这可以简单地通过让打印程序采用指定字符串的命令行参数并让调用程序使用适当的命令行参数执行它来完成。

    【讨论】:

    • 您正在寻找的搜索关键字是“IPC” - 非常感谢您,我很难找到需要进一步研究的正确关键字
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多