我有一个 Java 程序,它连接到我的数据库并验证一些报告并向特定的邮件 ID 发送电子邮件。并且有一个批处理脚本调用这个 java 类。这个 java 类需要 javax.activation.jar、javax_mail.jar、ojdbc14.jar,我将它们与批处理和 java 文件一起保存在某个文件夹中。
当我通过直接从程序所在的路径执行批处理脚本来运行程序并发送电子邮件时。
但是现在我已经使用 Windows 调度程序安排了这个批处理脚本每隔一小时运行一次。那时我的 java 出现编译错误,说找不到所需的依赖类。
我的批处理文件看起来像这样。
@echo off
cd D:\CPP\scheduler\JOB_REPORTS_MAIL
D:
:: compile the Main class and helper classes
javac Constants.java
javac DBUtility.java
javac -cp ".;javax.activation.jar;javax_mail.jar;ojdbc14.jar" SendJobStatusEmail.java
javac -cp ".;javax.activation.jar;javax_mail.jar;ojdbc14.jar" JobReportScheduler.java
:: Run the Main class
java -cp ".;javax.activation.jar;javax_mail.jar;ojdbc14.jar" JobReportScheduler
如果我从批处理中删除以下行,则无法通过 Windows 调度程序运行
cd D:\CPP\scheduler\JOB_REPORTS_MAIL
D:
我想删除这两行。当调度程序选择批处理文件并执行它时,它应该能够从批处理所在目录下的 lib 文件夹中选择依赖的 jar。
它不应该依赖于驱动它的机器,以便我可以放入任何 Windows 机器并使用 Windows 调度程序执行。
我尝试了不同的选项,但没有任何效果。请在这里帮助我。