5

我有一个使用 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 一起编译得非常愉快。我需要做些什么来解决这个问题?

4

1 回答 1

5

根据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 支持讨论的进一步阅读。

于 2018-08-16T14:54:12.620 回答