java - 在 Quartz 作业中动态加载 Java 类文件的名称

标签 java quartz-scheduler classloader

我有一个用 Java 编写的 Quartz 作业,如果我将 Quartz JobDetail 行设置如下,则该作业可以正常运行:

JobDetail jd = new JobDetail("FeedMinersJob", scheduler.DEFAULT_GROUP, FeedMinersScheduler.class); 

但我想动态加载该类,因为作业详细信息存储在数据库表中。所以我想要这样的东西:

JobDetail jd = new JobDetail(sj.getJobName(), scheduler.DEFAULT_GROUP, sj.getJobClassFile()); 

其中 sj 是计划作业对象,并且方法 sj.getJobClassFile() 返回 sj 中定义的类的名称,而不是对类名进行硬编码。

我尝试了 Java Class.forName 方法的排列,但没有成功。

最佳答案

我也遇到了同样的问题。 它不会输出任何内容,也不会引发错误。 这是因为您的作业类没有空构造函数。因此,即使代码是正确的,它也没有创建作业对象的机制。 如果您向 Job 类添加一个空构造函数,它将起作用。

关于java - 在 Quartz 作业中动态加载 Java 类文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1437404/

相关文章:

java - 我可以从代码中设置环境变量吗?

java - 我可以在java中使用xmlrpc传递一个对象吗

mysql - 解析时间差异并划分mysql

java Quartz2 cron触发器没有立即触发

java - 从插件项目中类转换解析 Java 源代码时出现问题

Java:如何检查程序是否已正确启动?

java - 为什么eclipse中会出现JNI错误?

grails - 如何调试 quartz 不触发我的作业-Quartz插件1.0.1/1.0.2和Grails 2.2.5

java - 执行 ANT 任务时的默认类加载器

java - InvokeExact 对象,其类型由类加载器动态加载