【发布时间】:2015-10-22 15:46:05
【问题描述】:
我遇到了 GWT 编译问题。我使用的是 GWT 2.7.0,我使用的是 Java 8。
当我启动 dev-mod 时,我得到了这个异常:
java.lang.NoSuchFieldError: originalSourceLevel
at com.google.gwt.dev.javac.JdtCompiler.getStandardCompilerOptions(JdtCompiler.java:611)
at com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions(JdtCompiler.java:633)
at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:983)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:339)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:580)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:513)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:499)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:668)
at com.google.gwt.dev.codeserver.Recompiler.initWithoutPrecompile(Recompiler.java:200)
at com.google.gwt.dev.codeserver.Outbox.maybePrecompile(Outbox.java:82)
at com.google.gwt.dev.codeserver.Outbox.<init>(Outbox.java:61)
at com.google.gwt.dev.codeserver.CodeServer.makeOutboxes(CodeServer.java:156)
at com.google.gwt.dev.codeserver.CodeServer.start(CodeServer.java:118)
at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:91)
at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.gwt.dev.shell.SuperDevListener$1.run(SuperDevListener.java:84)
我在pom.xml 中添加了<gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath>,但仍然是同样的问题。请问有什么建议吗?
【问题讨论】:
-
据我所知,GWT 2.7.0 不支持 Java 8。 GWT 2.8.0 将是第一个具有有限 Java 8 支持的 GWT 版本。 stackoverflow.com/questions/29913237/… 参见此处:stackoverflow.com/questions/15693169/java-8-support-in-gwt/…
-
发现:当使用Java8时,你应该在DevMode/CodeServer/Compiler中添加-sourceLevel 1.7参数。这里grokbase.com/t/gg/google-web-toolkit/154wjbj2hd/…
-
我将 sourceLevel 1.7 参数添加到 DevMode/CodeServer 并将 java8 更改为 java7 仍然是相同的异常
-
@el-hoss GWT 2.7 可以在 Java 8 运行时完全正常运行。不支持的是由 GWT 编译为 JS 的源代码中的 Java 8 语言结构。
-
@user3816170:您的类路径中是否有旧版本的 JdtCompiler?
标签: java maven gwt intellij-idea