GWT/Eclipse: ClassNotFoundException com/google/gwt/dev/Compiler GWT/Eclipse: 找不到类 com/google/gwt/dev/Compiler

6

我最近从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.
、以及其他许多Google-Jars都在类路径中。
有人有解决这个问题的想法吗?我还设置了一个全新的Eclipse安装,安装了新的GWT插件,并选择了一个新的工作区目录,但这仍然给我带来了错误...
附加信息:
  • Windows XP
  • Eclipse for Java EE 3.6 Helios
  • J2EE / Java 1.6.0_22-b04
  • Google Plugin for Eclipse 3.6 1.4.0.v201010280102
  • Google App Engine Java SDK 1.3.8 1.3.8.v201010161055
  • Google Web Toolkit SDK 2.1.0 2.1.0.v201010280102
8个回答

4

我曾经有过同样的问题,无法在Eclipse中创建新的GWT项目。 从我的Windows环境变量中删除Classpath变量(显然会干扰Eclipse中的设置)解决了我的问题。


谢谢!那个方法起作用了!不幸的是,我遇到了另一个问题:[ERROR] 无法在您的类路径中找到“GWTModule/gwt/xml.gwt.xml”;可能是打字错误,或者您忘记为源包含类路径条目?看起来当我尝试使用不同的GWT版本时出了些问题。 - hage

1
我曾经遇到过类似的问题,不断出现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

1
在我的情况下,从 Google Maven 仓库下载的 jar 包(gwt-dev-2.1.0.jar)是损坏的!我用一个包含类的替换了我的仓库中的 jar 包,然后 mvn gwt:run 就可以工作了!
希望这可以帮到你。

我不使用Maven。我直接从GWT更新站点安装了GWT插件...我尝试重新安装插件,用从Google页面下载的插件GWT-SDK替换插件,但都没有帮助。 :( - hage
1
我遇到了完全相同的问题。我的JAR包含HTML。重新下载解决了这个问题。在某个时候,我们使用的存储库中一定有人搞砸了什么。 - Ztyx

0
我的理解是:
当 GWT 编译一个项目时,它需要工具“com.google.gwt.dev.Compiler”(它有一个“main”入口);但是,GWT 不使用 Eclipse 项目的“构建路径”设置来找到该工具,而是查看操作系统的“类路径”系统变量。
因此,我认为解决方案是将“D:\Java\GWT\gwt-2.6.1 \ *;”(以我的情况为例)添加到“类路径”中,并重新启动 Eclipse。 自从这样做后对我有好处。

0
我曾经遇到过同样的问题,某些Java程序安装后声明了“ClassPath”环境变量,导致GWT插件在任何版本的Eclipse中都无法使用,从3.6(Helios)到4.2(Juno)。 请注意,在Windows操作系统中,环境变量是不区分大小写的。 解决方案:删除系统/用户变量声明,并在相关程序的启动脚本中声明该变量。

0

前往您的 项目属性 / 构建路径,将 "GWT库" 移至构建路径的顶部。

现在尝试重新编译。


不幸的是,这并没有帮助。我的类路径顺序现在是:GWT SDK、jdk、glassfish libs、许多其他的jar包和我的项目目录。但我仍然遇到了NoClassDefFoundError错误,无法创建新的GWT项目。我现在将尝试在虚拟机中设置一个全新的环境... - hage
升级到2.1版本有点麻烦。我的两台电脑都遇到了问题。在两个系统中,将GWT移动到构建路径中帮助解决了问题,但在其中一台电脑上,我还需要清除所有缓存文件。在我的OSX上,我甚至需要完全重启电脑(因为某种奇怪的原因)。 - Carlos Tasada

0

我通过以下方式解决了这个问题:

  • 从项目中删除GWT库
  • 更新Eclipse的GWT插件
  • 将库放回到项目中
  • 完成

0

我只是移除并重新包含gwt-dev.jar,然后开始工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接