从bat文件调用Java应用程序并在完成后继续?
我正在调用调用Java应用程序的batfile从bat文件调用Java应用程序并在完成后继续?,java,batch-file,Java,Batch File,我正在调用调用Java应用程序的batfileApp.bat: echo %DATE%_%TIME% START >> log.log App.bat import echo %DATE%_%TIME% END >> log.log App.bat中的内容 %JAVACMD% %JAVA_OPTS% %EXTRA_JVM_ARGUMENTS% %APP_OPTS% -classpath %TS_CLASSPATH% org.App %CMD_LINE_ARGS% 其中
App.bat
:
echo %DATE%_%TIME% START >> log.log
App.bat import
echo %DATE%_%TIME% END >> log.log
App.bat中的内容
%JAVACMD% %JAVA_OPTS% %EXTRA_JVM_ARGUMENTS% %APP_OPTS% -classpath %TS_CLASSPATH% org.App %CMD_LINE_ARGS%
其中,org.App
位于App.jar文件中
但是在App.bat
bat文件完成后,包装器bat文件中的最后一行永远不会执行:
echo %DATE%_%TIME% END >> log.log
在Java应用程序调用返回后,我如何执行最后一行?因为我是一名批处理程序员,我将告诉您这一点(非常确定它将100%工作)
从批处理
文件中删除最后一行,并在java
文件中生成代码以启动名为“ENDLOG.bat”的文件
然后制作一个名为“ENDLOG.bat”的文件/abatch
名为“ENDLOG”的文件
现在还记得从批处理文件中删除的最后一行吗?将其放入批处理文件中。您的示例对我来说效果很好,只是我更改了Java类执行部分
Callme.java
public class Callme {
public static void main(String args[]) {
System.out.println("Called JavaApp");
}
}
CallMe.bat
echo %DATE%_%TIME% START >> log.log
java Callme
echo %DATE%_%TIME% END >> log.log
log.log执行bat文件后
07/07/2015_13:39:10,79 START
07/07/2015_13:39:11,31 END
好的,既然你已经改变了你的问题,你能试试下面的方法并检查一下你是否得到了截止日期吗
echo %DATE%_%TIME% START >> log.log
call App.bat import
echo %DATE%_%TIME% END >> log.log
正如您所说,通过将Java程序作为
MyJavaApp import
,下面的脚本必须工作
echo %DATE%_%TIME% >> "d:\New folder\log.log"
MyJavaApp import
echo %DATE%_%TIME% >> "d:\New folder\log.log"
再次检查Java程序是否已完成。您还可以通过使用传递返回代码来双重检查Java程序是否已完成
System.exit(anyInteger);
并批量获取代码,并检查相应的程序状态。什么是MyJavaApp?是类文件还是jar文件?我不是批处理专家,但您的调用MyJavaApp import
不应该是javamyjavaapp
或javamyjavaapp import
(假设import
是MyJavaApp
的参数)他又写了一遍,但没有编译。