我有一个使用GWT-2.5.1和Java 8构建的大型web应用程序,随着Java 8的废弃,我需要将它迁移到Java 10 / 11。
我设法克服了几个问题,但我遇到了一个我无法克服的问题。
在构建应用程序时,我会得到以下错误:
[INFO] Compiling module com.<xxx>
[INFO] [ERROR] Unable to find type 'java.lang.Object'
[INFO] [ERROR] Hint: Check that your module inherits
'com.google.gwt.core.Core' either directly or indirectly (most often by
inheriting module 'com.google.gwt.user.User')在我看来,gwt.xml文件是正确的:
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to="xxxx">
<inherits name="com.google.gwt.user.User" />
<inherits name="com.google.gwt.user.theme.clean.Clean" />
<inherits name="com.google.gwt.logging.Logging" />
<inherits name="com.XXXXCoreBase" />
<!-- Delete non-0inherits stuyff -->
</module>
<!-- XXXXCoreBase -->
<?xml version="1.0" encoding="UTF-8"?>
<module>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name="com.google.gwt.user.User" />
<inherits name="com.google.gwt.query.Query"/>
<!-- Other module inherits -->
<inherits name="com.google.gwt.gen2.gen2" />
<inherits name="com.Microsoft" />
<inherits name="org.Org" />
<source path="client" />
<source path="shared" />
</module>这个编译与Java 8非常愉快。我需要做些什么来修复这个问题?
发布于 2018-08-16 14:54:12
根据http://www.gwtproject.org/release-notes.html#Release_Notes_2_8_2
支持在Java 9中运行。请注意,这并不意味着GWT可以编译Java 9源代码,或者支持Java 9 JRE更改,但可以使用Java 9 JRE编译GWT项目。请注意,不支持新的
--module-path标志,但必须像过去一样使用-classpath。
而在这里讨论 -
如果您不使用java 9模块,那么最新的版本就可以了。它通过从System.getProperty("java.class.path")读取类路径来做到这一点,因此,如果您使用标准工具创建类路径,那么一切都应该正常工作。如果您正在执行任何分配类路径的非标准操作,或者如果您使用的是java 9模块(即您提供了一个模块路径而不是类路径),那么这很可能不适合您。
看起来,您所能做的最多就是升级到gwt-2.8.2,限制只使用类路径而不使应用程序模块化。
另外,下面是对Java10支持讨论。的进一步解读
https://stackoverflow.com/questions/51877006
复制相似问题