运行一个JAVA程序作为一个计划任务

我试图在Windows 7机器上每天运行一次简单的JAVA程序。

我的代码在NetBeans中运行良好。 如果我做一个干净的build设,这表明了这一点:

C:\Program Files\Java\jdk1.7.0/bin/java -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" 

这当然不能在DOS提示符下工作,因为程序和文件之间的空间,所以我这样做:

 C:\Program Files\Java\jdk1.7.0/bin/java -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" 

这从DOS提示符下工作。

我现在在Windows Scheduler中创build一个任务来运行:

 C:\Program Files\Java\jdk1.7.0/bin/java 

有参数:

 -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" 

当我运行它时,我所看到的只是一个DOS框闪烁一秒钟。 我预计代码需要大约30秒才能运行。 代码应该将数据保存到数据库,并且不会发生更新。

该代码也使用java.util.logging所以我应该看到日志条目,我不知道。

我强烈怀疑我没有正确运行JAVA命令,或者在通过计划程序运行时出现错误的类path问题,而这些问题在DOS提示符下运行时并不存在。

帮助将不胜感激。 如果你以前看过这个,可以对它进行分类。 如果你能告诉我如何从Scheduler得到一个有意义的错误跟踪,那也是非常有用的。

谢谢!

我认为你可以创建一个简单的批处理脚本,以这种方式启动你的程序:

 @echo off REM Eventually change directory to the program directory cd C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\ REM run the program "C:\Program Files\Java\jdk1.7.0\bin\java.exe" -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" 

将其复制到记事本中并保存为java_script.cmd,然后直接调度此脚本而不是程序。

我改变了所有的字体引用 “SansSerif”后,我解决了

我在Java内部使用Jasper Reports来创建一个PDF文件。 当我双击Windows server 2003的批处理文件或调度程序,但没有使用2008的调度程序时,它工作正常。

我尝试了许多不同的东西没有工作,所以我虽然可能是Windows server 2008阻止访问?

现在正在完善。 所以,如果你有问题,请检查你正在使用的任何东西的参考。

除非您指定要运行的用户,否则调度程序将在不同的用户下运行。 如果它不作为你的用户运行,那么它将不能写入你的目录。

原来问题的真正问题是Microsoft系统上的java安装问题。 Java jre安装到Program Files \ java中。 可执行文件(java.exe) 安装在java \ bin目录下。 从命令行运行,os会查找java.exe的正确位置。 从其他MS工具(如VBA Excel或在这种情况下TaskScheduler)运行,它不!

通过查看TaskScheduler工具中的任务历史记录,可以看到TaskScheduler正在查找错误的地方。 双击一些历史事件,一个将列出操作和返回代码。 该操作将显示TaskScheduler正在尝试运行

"C:\Windows\system32\java.EXE"

TaskScheduler历史记录详细信息

因此,将java \ bin目录中的java.exe复制到调度程序正在查找的位置,现在就可以工作了。

或者更新您的任务并提供java.exe的完整路径。

您还可以更新环境系统路径以在java \ bin目录中查找java,但必须应用于所有用户,并且有时也是错误的。