2013-05-17 53 views
1

我一直在網上搜索了一段時間,沒有找到解決方案爲我工作。所以,我轉向你。BIRT NoClassDefFoundError

當我嘗試集成BIRT(一個用於報告和文檔的eclipse插件)的API時,我得到一個java.lang.NoClassDefFoundError。我複製粘貼他們的代碼,將所有的jar文件包含在lib文件夾(birt-runtime-4_2_2 \ ReportEngine \ lib)中,然後我得到NoClassDefFoundError。我究竟做錯了什麼?我無法在他們的頁面上找到任何有用的信息。此外,我嘗試了一些其他的源代碼,但我仍然遇到同樣的問題。所以我會爭辯說,jar文件的導入可能是錯誤的。但我不能爲上帝的愛找到錯誤。

我已經複製粘貼(只是嘗試)的代碼這裏找到: http://wiki.eclipse.org/Java_-_Simple_Design_Engine_API_%28BIRT%29

完整的錯誤信息是這樣的:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Platform 
    at org.eclipse.birt.core.framework.jar.ServicePlatform.getExtensionRegistry(ServicePlatform.java:72) 
    at org.eclipse.birt.core.framework.jar.ServicePlatform.createFactoryObject(ServicePlatform.java:98) 
    at org.eclipse.birt.core.framework.Platform$1.run(Platform.java:297) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.birt.core.framework.Platform.createFactoryObject(Platform.java:293) 
    at org.eclipse.birt.report.model.api.DesignEngine.<init>(DesignEngine.java:90) 
    at org.eclipse.birt.report.model.api.DesignEngine.newSession(DesignEngine.java:142) 
    at standard.Main.main(Main.java:36) 
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.Platform 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 8 more 
+0

剛剛發現了一些有趣的事情。將測試出來,然後發表評論 – Juicef

+0

nope,原來是一個死衚衕。所有幫助表示讚賞! – Juicef

+0

你是如何運行你的應用程序?我使用的過程是右鍵單擊我的項目並選擇Run As Menu,然後選擇'Eclipse Application'。如果你作爲一個普通的Java應用程序運行,eclipse庫不會被添加到類路徑中。 – David

回答

2

除了從伯特的jar文件,你也必須將一些額外的瓶子從Birt Runtime複製到Tomcat的WEB-INF文件夾中。

  • 下載BIRT運行從以下鏈接:http://download.eclipse.org/birt/downloads/
  • 在BIRT運行時,你會發現一個名爲ReportEngine文件夾。在這個文件夾中有一個lib文件夾。只需將其複製到您的WEB-INF文件夾即可。

我有類似的問題,它爲我工作。看看我的問題:NoClassDefFoundError for Birt Class EngineException