2010-05-05 73 views
0

我試着運行在一個嵌入式碼頭一個Wicket應用程序,使用此代碼:檢票的應用會UnsupportedClassVersionError

public static void main(String[] args){ 

    Server server = new Server(8080); 
    Context root = new Context(server, "/", Context.SESSIONS); 


    FilterHolder filterHolder = new FilterHolder(new WicketFilter()); 
    filterHolder.setInitParameter("applicationClassName", cz.dw.test.WicketApplication.class.getName()); 
    root.addFilter(filterHolder, "/*" , Handler.ALL); 

    try { 
    server.start(); 
    } catch (Exception ex) { 
    ex.printStackTrace(); 
    } 

} 

但我得到java.lang.UnsupportedClassVersionError: Bad version number in .class file

切換目標類版本爲我的應用程序(1.6 - > 1.5)沒有幫助。我想用Sun JDK 1.6.0_17,Wicket 1.4.8,Jetty 6.1.24

當我正常運行應用程序(部署到碼頭或mvn jetty:run),它工作正常。

我試圖調試,但JRE類沒有調試數據。當將類加載到JVM中時,堆棧跟蹤沒有用處。

任何想法可能是錯的? 我怎樣才能找到哪個類造成這種情況?

感謝, Ondra

回答

0

離開IDE後,我發現,在pom.xml版本還是1.6 - 所以IDE沒有改變它;不過,我想知道爲什麼在積極使用JDK 1.6時發生這種情況。也許Jetty插件更改類加載配置?

更新:所以問題是NetBeans的介於兩者之間,Maven和Maven的Exec插件。不知怎的,exec插件到達的環境是java被解析爲/usr/bin/java,這是Sun JDK 1.5.0

我將此報告爲NetBeans錯誤。 http://netbeans.org/bugzilla/show_bug.cgi?id=185547