我在调用Java应用程序的batfile 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文件完成后, wrapper bat文件中的最后一行永远不会执行:
echo %DATE%_%TIME% END >> log.log
如何在返回对Java应用程序的调用后执行最后一行?
答案 0 :(得分:2)
您的示例适用于我,除了我已经更改了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
执行bat文件后log.log
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
答案 1 :(得分:0)
正如您所说,通过将程序调用为
,您对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);
并批量获取代码并检查适当的程序状态。
答案 2 :(得分:-1)
由于我是batch
程序员,我会告诉你(非常确定它会100%工作。)。
从batch
文件中删除最后一行,并在java
文件中创建一个代码以启动名为&#34; ENDLOG.bat&#34;的文件。
然后创建一个名为&#34; ENDLOG.bat&#34; / batch
文件的文件名为&#34; ENDLOG&#34;。
现在还记得从批处理文件中删除的最后一行吗?放在batch
文件中。