繁体   English   中英

将JAVA程序作为计划任务运行

[英]Running a JAVA program as a scheduled task

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

我的代码在NetBeans中运行良好。 如果我做了一个干净的构建它建议:

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中创建一个任务来运行:

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命令,或者当从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.exe从java \\ bin目录复制到调度程序所在的位置,现在它可以正常工作。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM