【问题标题】:Java Quartz tutorial not workingJava Quartz 教程不起作用
【发布时间】:2014-02-13 12:08:18
【问题描述】:

原谅我是一个 Java 新手——我正在尝试使用 Quartz,但在运行基本教程时遇到了困难:

import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.*;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
public class QuartzTest {
    public static void main(String[] args) {
        try {
            // Grab the Scheduler instance from the Factory
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
            // and start it off
            scheduler.start();
            scheduler.shutdown();
        } catch (SchedulerException se) {
            se.printStackTrace();
        }
    }
}

似乎编译正常,但运行时出现以下错误:

Exception in thread "main" java.lang.VerifyError: verification failed at PC 1134 in org.quartz.impl.StdSchedulerFactory:instantiate(()Lorg.quartz.Scheduler;): String, int, or float constant expected
   at _Jv_BytecodeVerifier.verify_fail(byte, int) (/usr/lib64/libgcj.so.5.0.0)
   at _Jv_BytecodeVerifier.verify_instructions_0() (/usr/lib64/libgcj.so.5.0.0)
   at _Jv_VerifyMethod(_Jv_InterpMethod) (/usr/lib64/libgcj.so.5.0.0)
   at _Jv_PrepareClass(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
   at _Jv_WaitForState(java.lang.Class, int) (/usr/lib64/libgcj.so.5.0.0)
   at java.lang.VMClassLoader.linkClass0(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
   at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
   at java.lang.Class.initializeClass() (/usr/lib64/libgcj.so.5.0.0)
   at _Jv_ResolvePoolEntry(java.lang.Class, int) (/usr/lib64/libgcj.so.5.0.0)
   at QuartzTest.main(java.lang.String[]) (Unknown Source)

我认为quartz.properties 文件不是问题(文档似乎表明这种基本的东西不需要它),但无论如何我都可以使用它,带有基本选项:

org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

类路径中的 jars 包括:

libgcj-4.1.0.jar
quartz-2.2.1.jar
c3p0-0.9.1.1.jar
log4j-1.2.16.jar
quartz-jobs-2.2.1.jar
slf4j-api-1.6.6.jar
slf4j-log4j12-1.6.6.jar

有什么想法吗?

【问题讨论】:

  • 有要求不能用oracle jdk代替GNU java吗?
  • 试试这个链接,它工作正常,mkyong.com/java/quartz-scheduler-example
  • 不,我选择了系统上安装的内容,而不是下载单独的 JDK。你认为它会用不同的版本来解决吗?
  • 在 GCJ 中并非一切正常,请尝试 OpenJDK 或 Oracle Java
  • 确实!谢谢,Oracle JDK 1.7 成功了。

标签: java quartz-scheduler


【解决方案1】:

您需要提供作业类和触发器才能运行。这可能会有所帮助。 http://quartz-scheduler.org/documentation/quartz-2.1.x/examples/Example1

【讨论】:

  • 我不确定我是否遵循 - 在这一点上,我只是尝试启动调度程序,我什至没有运行任何东西。只需启动和停止。见这里:quartz-scheduler.org/documentation/quartz-2.2.x/quick-start 我真的需要给它一个触发器和工作吗? IE,空时不会运行? (该指南似乎暗示这应该没问题?)
  • 您需要启动一些作业,这将是您想要使用调度程序运行的任务吗?
  • 他不需要JobTrigger 来启动调度程序。
猜你喜欢
  • 2014-12-16
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 2013-04-13
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多