我正在使用 Windows 可执行文件来执行一些优化任务。此可执行文件从 Windows 命令提示符 (cmd) 运行。它读取一个批处理文件,告诉它如何运行模型接口(interface)(需要运行多次),该文件读取和写入文本文件,以便在它和优化 .exe 程序之间进行输入/输出。该模型接口(interface)是用java编写的,已经编译成功。我的批处理文件如下所示:
java -cp .;"C:\Program Files\location_of_required_jars\*"name_of_class_file
java 程序执行并完成,没有出现问题。
我的问题是我正在运行的可执行文件需要知道 java 何时终止。目前,它在模型接口(interface) java 程序运行 1 次后挂起,等待 java ...
行完成。
任何人都可以提供有关如何让 java 通知 cmd 它已完成的建议吗?
最佳答案
如果批处理文件在首次运行后没有进一步进行 java
命令意味着java进程实际上还没有完成。您需要诊断问题,我建议首先通过添加一些echo
来确保它确实没有完成。 java
之后的声明调用。接下来您需要运行 jps
命令,它是 JDK 的一部分。 jps
将报告正在运行的 java 进程的 PID,然后您可以执行 jstack <pid>
找出是什么阻止了你的 java 程序终止。可能主线程实际上并未完成,或者某些非守护线程仍在运行。
关于java - Windows cmd中的批处理文件不知道java程序何时终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51305238/