1

我已经创建了批处理文件并安排它每 1 小时一次。

下面是批处理文件脚本

set libpath=D:\Batch\Batch_lib
set classpath=%classpath%;%libpath%\aspriseOCR.jar
set classpath=%classpath%;%libpath%\aspriseTIFF.jar
set classpath=%classpath%;%libpath%\cmb81.jar
set classpath=%classpath%;%libpath%\cmbcm81.jar
set classpath=%classpath%;%libpath%\cmbem81.jar
set classpath=%classpath%;%libpath%\cmbicm81.jar
set classpath=%classpath%;%libpath%\cmbicmc81.jar
set classpath=%classpath%;%libpath%\cmbicmcup.jar
set classpath=%classpath%;%libpath%\cmblog4j81.jar
set classpath=%classpath%;%libpath%\cmbsdk81.jar
set classpath=D:\Batch\Batch_1.jar
java -Xms1024m -Xmx1024m -jar Batch_1.jar
exit

此批处理文件执行可运行的 jar 文件。在执行 jar 并经过一段时间后,它会抛出内存异常,并且命令提示符窗口永远不会关闭,并且它也不会在一个小时后启动另一个命令提示符。

所以我关心的是如何在它引发任何 java 异常后关闭命令提示符?

至少它应该在一个小时后关闭。

4

1 回答 1

2

Java 将异常输出到错误流,因此您需要通过重定向到 &1 来捕获它:

java -Xms1024m -Xmx1024m -jar Batch_1.jar 2>&1 | find "Exception" && exit

这应该可以在不考虑退出代码的情况下工作。

于 2013-04-24T11:19:18.213 回答