0

我正在开发一个使用 Java 但使用 Py4J 实现的 Python 包装器的项目。为了使其正常工作,我需要首先Main.java使用正确的命令行参数运行 Java 服务器(调用它),一旦服务器初始化,我需要在其上运行我自己的 Python 脚本(调用它Script.py)。

Main.java是我想发出初始化完成信号的地方:

public class Main {

    ...

    public void initialize() {
        // Server initialization code
        signalInitializationDone();
    }
}

目前我只是使用以下 AHK 脚本Run.ahk

Run, javaw Main --py4j
Sleep, 2000
Run, python .\python\Script.py

但这当然只有在初始化在 2 秒内完成时才有效,并且如果初始化完成得更快,它也会不必要地空闲。相反,我希望有一个在完成Script.py后立即运行的解决方案Main.initialize()

我不能做的一件事是:

public void initialize() {
    // Server initialization code
    Runtime.getRuntime().exec("python .\python\Script.py");
}

或从 Java 应用程序内部对 python 脚本的类似直接调用,因为同一服务器也可能与其他脚本一起运行,甚至作为独立服务器运行。

我也没有死心塌地使用 AHK,任何可行的解决方案(AHK、Batch、Python、Java)都可以。

4

0 回答 0