eclipse产品调用导致org.eclipse.swt.SWTError的ClassNotFoundException

时间:2012-02-23 01:20:57

标签: eclipse product classnotfoundexception

我找到了一个很好的todo工具,它基于eclipse-rcp和xtext (Sebastian Benz - Eclipse-Task-Editor)。我克隆了git存储库导出的产品。不幸的是,我在启动eclipse产品时遇到异常:

Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 43 more

可以找到整个堆栈跟踪(here)。我找到了一个由一些错误参数引起的同一exception的人。我删除了所有这些,但异常仍然存在。你有什么可能导致问题的线索吗?谢谢!

我在Gnome / Linux上使用Eclipse Indigo Service Release 1,使用以下java版本:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

3 个答案:

答案 0 :(得分:2)

也许,应用程序没有在你的插件文件夹中找到正确的swt lib。你需要一个名为“org.eclipse.swt.gtk.linux.x86_64_xxxx.jar”的jar。你可以检查一下。

答案 1 :(得分:1)

我通过编辑root pom.xml解决了'相同/类似'的问题:

      <build>
        <plugins>
          <plugin>
            <groupId>${tycho-groupid}</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho-version}</version>
            <configuration>
              <resolver>p2</resolver>
              <target>
                <artifact>
                  <groupId>de.sebastianbenz.task.tools</groupId>
                  <artifactId>de.sebastianbenz.task.target</artifactId>
                  <version>${task-editor-version}</version>
                  <classifier>indigo</classifier>
                </artifact>
              </target>
              <ignoreTychoRepositories>true</ignoreTychoRepositories>
              <environments>
    <!-- 
                 <environment>
                  <os>macosx</os>
                  <ws>cocoa</ws>
                  <arch>x86_64</arch>
                </environment>
                <environment>
                  <os>win32</os>
                  <ws>win32</ws>
                  <arch>x86</arch>
                </environment>
                <environment>
                  <os>win32</os>
                  <ws>win32</ws>
                  <arch>x86_64</arch>
                </environment>
                <environment>
                  <os>linux</os>
                  <ws>gtk</ws>
                  <arch>x86</arch>
                </environment>
     -->
                <environment>
                  <os>linux</os>
                  <ws>gtk</ws>
                  <arch>x86_64</arch>
                </environment>
              </environments>
            </configuration>
          </plugin>
          <plugin>
            <groupId>${tycho-groupid}</groupId>
            <artifactId>tycho-maven-plugin</artifactId>
            <version>${tycho-version}</version>
            <extensions>true</extensions>
          </plugin>
        </plugins>
      </build>

答案 2 :(得分:0)

信不信由你,我能够通过简单地从不同的镜像下载相同版本的Eclipse来解决导出问题 - 最初我从滑铁卢大学下载它,第二次从宾夕法尼亚大学镜像下载。我在删除之前的Eclipse安装之前备份了这些项目,并在新实例上重新导入它们。产品出口顺利进行。我正在使用Eclipse 3.7.2 - Indigo for RAP和RCP开发人员。