【问题标题】:GWT/ Eclipse: ClassNotFoundException com/google/gwt/dev/CompilerGWT/ Eclipse:ClassNotFoundException com/google/gwt/dev/Compiler
【发布时间】:2011-05-03 19:33:07
【问题描述】:

我最近从 GWT 2.0.4 更新到 2.1.0。从那以后我不能再编译我的 GWT 应用程序了。当我单击 GWT eclipse 插件的 GWT 编译按钮时,出现以下错误:

java.lang.NoClassDefFoundError: com/google/gwt/dev/Compiler
Caused by: java.lang.ClassNotFoundException: com.google.gwt.dev.Compiler
 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Exception in thread "main"

我也无法在 Eclipse 中创建新的 GWT 项目。在新的新建 Web 应用程序项目对话框中,可以选择使用 GWT 和/或 Google App Engine。检查“使用gwt”时,错误对话框提出,表示: “创建元素失败。原因:调用 com.google.gwt.user.tools.WebAppCreator 失败。有关详细信息,请参阅错误日志。”

在日志文件中(<workspace>/.metadata/.log)我可以看到消息:

!ENTRY org.eclipse.jdt.ui 4 10001 2010-11-02 08:34:50.085
!MESSAGE Internal Error
!STACK 1
Java Model Exception: Core Exception [code 0] Invocation of com.google.gwt.user.tools.WebAppCreator failed. See the error log for more details.
 at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:50)
 at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
 at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
 at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
 at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
 at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: org.eclipse.core.runtime.CoreException: Invocation of com.google.gwt.user.tools.WebAppCreator failed. See the error log for more details.
 at com.google.gwt.eclipse.core.runtime.tools.WebAppProjectCreatorRunner.createProject(WebAppProjectCreatorRunner.java:53)
 at com.google.gdt.eclipse.suite.wizards.WebAppProjectCreator.createGWTProject(WebAppProjectCreator.java:532)
 at com.google.gdt.eclipse.suite.wizards.WebAppProjectCreator.create(WebAppProjectCreator.java:294)
 at com.google.gdt.eclipse.suite.wizards.NewWebAppProjectWizard.finishPage(NewWebAppProjectWizard.java:147)
 at org.eclipse.jdt.internal.ui.wizards.NewElementWizard$2.run(NewElementWizard.java:117)
 at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
 at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
 at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
 at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
 at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
 at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
!SUBENTRY 1 com.google.gwt.eclipse.core 4 0 2010-11-02 08:34:50.085
!MESSAGE Invocation of com.google.gwt.user.tools.WebAppCreator failed. See the error log for more details.

gwt-dev.jar、gwt-user.jar 和许多其他 google-jar 都在类路径中...

有人知道如何解决这个问题吗? 我还设置了一个全新的 Eclipse 安装,安装了新的 GWT 插件,并选择了一个新的工作区目录,但这仍然给了我错误...

补充资料:

  • Windows XP,
  • Eclipse for Java EE 3.6 Helios,
  • J2EE / Java 1.6.0_22-b04
  • 适用于 Eclipse 3.6 1.4.0.v201010280102 的 Google 插件,
  • Google App Engine Java SDK 1.3.8 1.3.8.v201010161055
  • 谷歌网络工具包 SDK 2.1.0 2.1.0.v201010280102

【问题讨论】:

    标签: java eclipse gwt eclipse-plugin classnotfoundexception


    【解决方案1】:

    我遇到了同样的问题,无法在 Eclipse 中创建新的 GWT 项目。 从我的 windows 环境变量中删除 Classpath 变量(显然会干扰 Eclipse 中的设置)为我解决了这个问题。

    【讨论】:

    • 谢谢!那成功了!不幸的是,我遇到了另一个问题: [错误] 无法在您的类路径上找到“GWTModule/gwt/xml.gwt.xml”;可能是拼写错误,或者您忘记包含源的类路径条目?当我在玩不同的 GWT 版本时,似乎有些事情搞砸了。
    【解决方案2】:

    在我的情况下,从 google maven repo 下载的 jar (gwt-dev-2.1.0.jar) 已损坏!我将 repo 中的 jar 替换为包含类的 jar,并且 mvn gwt:run 有效!

    希望这会有所帮助。

    【讨论】:

    • 我不使用 maven。我从 gwt 更新站点直接安装了 gwt 插件...我尝试重新安装插件,将插件 gwt-sdk 替换为从谷歌页面下载的插件,但都没有帮助。 :(
    • 我遇到了完全相同的问题。我的 JAR 包含 HTML。重新下载解决了这个问题。在某些时候,一定有人把我们正在/正在使用的存储库搞砸了。
    【解决方案3】:

    我遇到了类似的问题,我不断收到 java.lang.NoClassDefFoundError: com/google/gwt/dev/Compiler。在四处搜索时,我意识到 gwt 版本缺少 gwt 安装目录中的 gwt-dev 文件夹中的文件。

    实际上,我在项目中使用 maven 和 gwt 2.5.0,我发现 .m2\repository\com\google\gwt\gwt-dev\2.5.0 文件夹内应该存在四个文件以便 gwt编译器工作。 那些是

    • gwt-dev-2.5.0.jar
    • gwt-dev-2.5.0.jar.sha1
    • gwt-dev-2.5.0.pom
    • gwt-dev-2.5.0.pom.sha1

    【讨论】:

      【解决方案4】:

      转到您的Project Properties / Build Path,将“GWT library”移动到 BuildPath 的顶部。

      现在尝试重新编译。

      【讨论】:

      • 不幸的是,这没有帮助。我的类路径顺序现在是:GWT SDK、jdk、glassfish 库、许多其他 jars、我的项目目录但我仍然收到 NoClassDefFoundError 并且无法创建新的 GWT 项目。我现在将尝试在 VM 中设置一个全新的环境...
      • 升级到2.1有点痛苦。我的两台电脑有问题。在构建路径中移动 GWT 对两个系统都有帮助,但在一个系统中,我还需要清除所有缓存的文件。在我的 OSX 中,我什至需要完全重启计算机(出于某种奇怪的原因)
      【解决方案5】:

      我只是,删除并再次包含 gwt-dev.jar 并开始工作。

      【讨论】:

        【解决方案6】:

        我这样做解决了这个问题:

        • 从您的项目中删除 GWT 库
        • 为 eclipse 更新 gwt 插件
        • 将库放回您的项目中
        • 完成

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题,安装了一些 java 程序,声明了一个“ClassPath”环境变量,并使任何版本的 eclipse 的 gwt 插件无效,从 3.6 (helios) 到 4.2 (juno)。 请注意,环境变量在 Windows 操作系统中不区分大小写。 解决方法:去掉系统/用户变量声明,在相关程序的启动脚本中声明变量。

          【讨论】:

            【解决方案8】:

            我的理解是:

            当 GWT 编译一个项目时,它需要工具“com.google.gwt.dev.Compiler”(它有一个“main”入口点);但是,GWT 不使用 Eclipse 项目的“构建路径”设置来查找工具,而是查看操作系统的“类路径”系统变量。

            所以,我认为解决方案是添加“D:\Java\GWT\gwt-2.6.1\*;” (以我的情况为例)进入“类路径”并重新启动 Eclipse。从那以后它对我很有效。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-11-14
              • 1970-01-01
              • 2013-05-23
              相关资源
              最近更新 更多