从bat文件调用Java应用程序并在完成后继续?

时间:2015-07-07 11:25:35

标签: java batch-file

我在调用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应用程序的调用后执行最后一行?

3 个答案:

答案 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文件中。