我正在安排一个任务(使用 Windows 任务调度程序),它只运行一个批处理文件。
这批正在运行一个带有简单“Java -jar test.jar”的 jar 文件(Java 程序)。
当我从命令行手动运行脚本时,java程序运行良好,没有显示异常。
但是当任务计划执行相同的操作(调用命令)时,java程序以异常结束:我的jar中的一个类的“ClassNotFoundException”。
这是什么原因造成的?从命令行和任务调度程序调用 jar 时有什么区别?
谢谢。
我正在安排一个任务(使用 Windows 任务调度程序),它只运行一个批处理文件。
这批正在运行一个带有简单“Java -jar test.jar”的 jar 文件(Java 程序)。
当我从命令行手动运行脚本时,java程序运行良好,没有显示异常。
但是当任务计划执行相同的操作(调用命令)时,java程序以异常结束:我的jar中的一个类的“ClassNotFoundException”。
这是什么原因造成的?从命令行和任务调度程序调用 jar 时有什么区别?
谢谢。
我认为“当前目录”可能不同,因此 java 根本找不到 jar。在你的 .bat 的第一行,你可以cd \path\that\you\expect
在执行 java 之前做一个吗?
你jar
有任何依赖吗?此外,了解您的文件夹结构以及如何在命令行中运行它会很有帮助。
无论如何,根据您的情况,您可以按照以下方式进行操作:
cd /path/to/exec/folder // set current directory
java -cp /all-classpath-jars/and-or-bin-folders/ test.jar your.package.MainClass [args...]
如果您正确指定所需的一切,这必须有效。