将批处理文件作为计划任务运行的行为不应该如此?

时间:2015-06-17 10:37:06

标签: java mysql windows batch-file jdbc

我有一个jar文件,它使用jdbc连接到sql db并添加新记录。要使用arg执行此操作,我将cmd line命令放在批处理文件中以运行它。

现在,如果我手动点击并运行批处理文件,它工作正常,我可以在我的sql数据库中看到新记录,但我创建了一个计划任务,为我运行批处理文件一天,它似乎成功,但没有新的记录添加到数据库中。

关于为什么会发生这种情况的任何想法?

批处理文件只有一行,因为它在运行时似乎有用吗? :

  

java -Dvar = daily -jar SQL_JDBC_Bandon.jar

2 个答案:

答案 0 :(得分:0)

我发布这个作为答案,因为它在评论中看起来很难看。

要将执行日志与计划任务的任务执行日志进行比较,请创建与此类似的批处理。

@echo off
echo JDBC executed %DATE% %TIME% >> C:\temp\logs\jdbctask.log
C:
cd \PathToYourJar
C:\Programs\Java\bin\java -version >> C:\temp\logs\jdbctask.log
Dir C:\Programs\Java\bin\java.* >> C:\temp\logs\jdbctask.log
C:\Programs\Java\bin\java -Dvar=daily -jar SQL_JDBC_Bandon.jar >> C:\temp\logs\jdbctask.log

这可确保您不依赖于可能未为您运行批处理的用户设置的PATH或JAVA_HOME变量。请根据需要调整路径。 如果仍然失败,请发布日志文件的结果。

答案 1 :(得分:0)

我想了一会儿,但我所做的就是将这两行放在一个.bat文件中,它可以作为计划任务没有任何问题:

cd C:\Users\SQLService\Desktop\ScadaCalcs
java -Dvar=daily -jar SQL_JDBC_Bandon.jar

需要注意的一点是jar和脚本都在ScadaCalcs目录中,但我必须使用cd绝对路径才能工作。