2011-07-15 81 views
0

我正在使用Eclipse Indigo,並且無法編譯一些在Ganymede中以前工作正常的代碼。我無法導入以下任何類別:無法找到org.eclipse.swt.widgets.XXX的類文件

import org.eclipse.swt.SWT; 
import org.eclipse.swt.custom.CTabFolder; 
import org.eclipse.swt.custom.CTabItem; 
import org.eclipse.swt.layout.GridData; 
import org.eclipse.swt.layout.GridLayout; 
import org.eclipse.swt.widgets.Composite; 

我試圖在Eclipse Marketplace中搜索SWT,但找不到該庫。另外,我閱讀了其他文章,說重建我的項目(我做了),其他人建議下載「JAR」。有誰知道我需要下載哪個JAR?或者如何修復我的構建路徑,以便它包含這些SWT庫?

類路徑(DannyGui應該有兩次):提前

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
<classpathentry kind="src" path="com.danny.DannyGui.plugin/src"/> 
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/swtgraphics2d.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/antlr/stringtemplate-3.2.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/antlr/antlr-2.7.7.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/antlr/antlr-3.1.3.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/antlr/antlr-runtime-3.1.3.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/antlr/gunit.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/wrapper-3.1.0.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/antlr-2.7.2.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/avalon-framework-4.1.5.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/backport-util-concurrent.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/idl.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/jacorb.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/logkit-1.2.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JacORB/picocontainer-1.2.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/gnujaxp.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/iText-2.1.3.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/jcommon-1.0.15.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/jfreechart-1.0.12.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/jfreechart-1.0.12-experimental.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/jfreechart-1.0.12-swt.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/junit.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/JFreeChart/servlet.jar"/> 
<classpathentry exported="true" kind="lib" path="C:/DannyGui/DannyGui/com.danny.DannyGui.plugin/third_party_libs/log4j/log4j-1.2.15.jar"/> 
<classpathentry kind="output" path="bin"/> 
</classpath> 

感謝。

+0

我要補充,這是我真正的錯誤:該項目未建,因爲它的構建路徑是不完整的。找不到org.eclipse.swt.widgets.Composite的類文件。修復構建路徑,然後嘗試構建此項目。由於其構建路徑不完整,該項目未建成。找不到org.eclipse.swt.widgets.Composite的類文件。修復構建路徑,然後嘗試構建此項目。 –

+0

你可以發佈你的項目的.classpath文件的內容嗎? –

+0

添加類路徑... –

回答

0

發佈的.classpath文件不包含任何可以加載SWT類的地方。這個項目不會像任何版本的Eclipse一樣構建。

這聽起來像你正試圖構建爲獨立的SWT應用程序(而不是說一個Eclipse插件)。獨立應用程序需要類路徑上的SWT庫。您不會在Eclipse Marketplace上查找SWT,因爲您並未在尋找擴展Eclipse的插件。您正在尋找您的項目所依賴的圖書館。您將SWT作爲一個zip文件下載,您可以從系統中抽取某個地方。該zip包含.jar文件和作爲SWT實現一部分的本機庫。

與其給你一個直接的鏈接,我會告訴你如何找到它。開始在Eclipse平臺下載網站:

http://download.eclipse.org/eclipse/downloads/

忽略發展的基礎之上。查看最新版本。現在,這將是3.7。跟隨該鏈接到構建頁面。尋找SWT底部。下載適合您系統的zip文件。解壓縮並從項目的類路徑中添加對包含的jar的引用。

+0

好的,我看到了...... - 在Eclipse Package Explorer中右鍵單擊項目,選擇屬性,然後單擊左側的Java Build Path。 - 單擊「添加外部JAR ...」按鈕。 - 添加<您的Eclipse Home> \ plugins \ org.eclipse.swt_3.7.0.v3735b.jar和org.eclipse.swt.win32.win32.x86_3.7.0.v3735b.jar(您的主目錄是您下載的內容如@Konstantin提到的或者你的Eclipse主目錄(如果這些文件在那裏),更改特定名稱以匹配與你的操作系統和SWT構建相匹配的任何名稱)。 - 然後清理並重建您的項目。 感謝@Konstantin的幫助。 –

+0

是的,你可以指回你自己的Eclipse安裝,但我不會推薦這樣做。這對您決定完成後需要分發的內容沒有任何幫助,因此您最終會爭先恐後地進行分類。在您的想法中,您將來可以安全地解決一些麻煩並下載單獨的SWT發行版。 –