2009-10-15 85 views
0

可有人請指正,我發現這個例子在線和一堆別人不要的工作,這個特殊的例子引發以下錯誤:編寫Java代碼將執行每隔一小時(石英)

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/SetUtils 
    at org.quartz.JobDetail.<init>(JobDetail.java:85) 
    at tralala.org.xml.CronSchedule.<init>(CronSchedule.java:13) 
    at tralala.org.xml.CronSchedule.main(CronSchedule.java:20) 

下面是代碼:

CronJob.java

import org.quartz.Job; 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 

public class CronJob implements Job { 
    public void execute(JobExecutionContext arg0) throws JobExecutionException { 
    System.out.println("PRINT SOME TEXT LINE"); 
    } 
} 

CronSchedule.java

import org.quartz.CronTrigger; 
import org.quartz.Scheduler; 
import org.quartz.SchedulerFactory; 
import org.quartz.impl.StdSchedulerFactory; 
import org.quartz.JobDetail; 

public class CronSchedule { 
    public CronSchedule()throws Exception { 
    SchedulerFactory sf=new StdSchedulerFactory(); 
    Scheduler sched=sf.getScheduler(); 
    JobDetail jd=new JobDetail("job1","group1",CronJob.class); 
    CronTrigger ct=new CronTrigger("cronTrigger","group2","0 0/1 * * * ?"); 
    sched.scheduleJob(jd,ct); 
    sched.start(); 
    } 
    public static void main(String args[]){ 
    try{  
     new CronSchedule(); 
    }catch(Exception e){} 
    } 
} 

我只是想運行(這實際上是作品)任何石英的例子..我一直在尋找一段時間,每個例子要麼有編譯錯誤,要麼像這樣(罕見的)會拋出一個錯誤。我只是想運行它這一個或任何..只是爲了得到一些具體的例子裏面。我一直在閱讀http://www.opensymphony.com/quartz/wikidocs/TutorialLesson1.html,這個例子不能編譯..有什麼建議嗎? tnx

回答

2

將包含SetUtils類的庫添加到類路徑中。
你可以找到它here

1

您應該爲您的類路徑添加commons-collections(v3.1)。它也捆綁在Quartz發行版中。

3

錯誤只是表明您的類路徑中沒有類org.apache.commons.collections.SetUtils。所以你應該確保。您可以從here下載該庫。

然後提取下載文件。你應該看到一個文件commons-collections-3.2.1.jar。您只需將該文件放入您的課程路徑中即可。或者使用選項'-cp commons-collections-3.2.1.jar'運行它。

1

如果您從Quartz發佈歸檔文件中包含的示例開始,那麼您可能會更容易。它們位於examples子目錄中,並且每個示例都有一個腳本來運行它(當然還有基於ant的編譯腳本)。研究這些腳本以查看一切如何組合在一起。由於Quartz與所有需要的依賴關係捆綁在一起,您應該能夠在不下載任何內容的情況下運行示例。