Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
作为计划任务运行JAVA程序_Java_Windows_Scheduler - Fatal编程技术网

作为计划任务运行JAVA程序

作为计划任务运行JAVA程序,java,windows,scheduler,Java,Windows,Scheduler,我尝试在Windows7机器上每天运行一次简单的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

我尝试在Windows7机器上每天运行一次简单的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计划程序中创建要运行的任务:

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提示符下运行时,调度程序不存在这个问题

我们将不胜感激。如果你以前见过这个,并且能把它分类,那就太好了。若你们能告诉我如何从调度程序中获取有意义的错误跟踪,那个也会非常有帮助


谢谢

计划程序将在不同的用户下运行,除非您指定运行的用户。如果它不是以您的用户身份运行,那么它将无法写入您的目录。

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

@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,然后直接计划此脚本而不是程序。

I在将所有字体的引用更改为“SansSerif”后解决它

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

我尝试了很多不同的方法,但都没有奏效,所以我想可能是Windows Server 2008阻止了访问


现在它工作得很好。因此,如果您遇到问题,请检查对您正在使用的任何内容的引用。

原始问题的真正问题是Microsoft系统上的java安装问题。Java jre安装到程序文件\Java中。可执行文件(java.exe)仅安装在该java\bin目录中。从命令行运行时,操作系统将查找java.exe的正确位置。从其他MS工具(如VBA Excel或本例中的TaskScheduler)运行时,它不会

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

“C:\Windows\system32\java.EXE”

因此,将java.exe从java\bin目录复制到计划程序正在查看的位置,现在它就可以工作了

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


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

调试的一种方法是将完整的java-jar命令放在批处理脚本中并执行该命令,将任何输出重定向到一个文件(请参见)混合使用斜杠(
/
)和反斜杠(\)。你确定没问题吗?你是在代码中使用
System.getProperty(“user.dir”)
还是
System.getProperty(“java.class.path”)
?我尝试了很多方法来实现这一点。我确保它是以具有足够权限的用户身份运行的。我解决了/\问题。通过上述方法,通过bat文件间接运行java就是成功的关键。谢谢,但是为什么这会起作用呢?为什么直接执行jar会失败?我试图调度.bat文件,但三天都没有成功。这个答案救了我的命谢谢@aleroot