java - Windows cmd中的批处理文件不知道java程序何时终止

标签 java batch-file cmd

我正在使用 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/

相关文章:

.net - 在 Visual Studio 中删除隐藏的文件结束字符 (BOM)

java - 如何编写 sql 查询以使用准备好的语句更新表的多个列?

java - 替换字符串中第 i 次出现的最快方法

windows - 批处理文件中的菜单

bash - 在 bash shell 脚本中检查目录的问题

windows - 从 %%i 变量获取文件名

java - 哪个Hadoop版本符合RHive要求

java - fragment 内的非法封闭实例

c++ - Windows 批处理命令 - 高级错误抑制问题

Java运行Python脚本问题