3

我正在安排一个任务(使用 Windows 任务调度程序),它只运行一个批处理文件。

这批正在运行一个带有简单“Java -jar test.jar”的 jar 文件(Java 程序)。

当我从命令行手动运行脚本时,java程序运行良好,没有显示异常。

但是当任务计划执行相同的操作(调用命令)时,java程序以异常结束:我的jar中的一个类的“ClassNotFoundException”。

这是什么原因造成的?从命令行和任务调度程序调用 jar 时有什么区别?

谢谢。

4

2 回答 2

5

我认为“当前目录”可能不同,因此 java 根本找不到 jar。在你的 .bat 的第一行,你可以cd \path\that\you\expect在执行 java 之前做一个吗?

于 2012-12-31T09:54:03.760 回答
2

jar有任何依赖吗?此外,了解您的文件夹结构以及如何在命令行中运行它会很有帮助。
无论如何,根据您的情况,您可以按照以下方式进行操作:

cd /path/to/exec/folder   // set current directory
java -cp /all-classpath-jars/and-or-bin-folders/ test.jar your.package.MainClass [args...]

如果您正确指定所需的一切,这必须有效。

于 2012-12-31T10:06:07.943 回答