首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Eclipse Tycho:使用java.xml.bind模块时出现编译错误?

Eclipse Tycho:使用java.xml.bind模块时出现编译错误?
EN

Stack Overflow用户
提问于 2018-06-12 21:49:17
回答 1查看 812关注 0票数 2

我认为这个问题与这个blog post中描述的问题是一样的,但是我在Java10中得到了这个:我有一个Eclipse RCP应用程序,它使用Java10的特性,但也使用JAXB类。在Eclipse中,我必须将java.xml.bind模块添加到我的项目(如here所述)的构建路径配置中,以便消除编译错误。

但是,在使用Tycho 1.2.0构建产品时,我得到了以下错误,这正是使用JAXB的类的错误:

代码语言:javascript
复制
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:1.2.0:compile (default-compile) on project epd-editor: Compilation failure: Compilation failure:
[ERROR] ...app\src\app\editors\XmlPage.java:
[ERROR] package app.editors;
[ERROR] ^
[ERROR] Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.BinaryModuleBinding.create(BinaryModuleBinding.java:64)
[ERROR] java.lang.NullPointerException
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.BinaryModuleBinding.create(BinaryModuleBinding.java:64)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getModuleFromAnswer(LookupEnvironment.java:427)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:367)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:228)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:105)

有没有办法配置Tycho编译器插件,让它可以看到像java.xml.bind这样的模块,或者有没有其他原因导致这个错误?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 16:40:30

Java EE modules are deprecated for removal and not resolved by defaultwill be removed in Java 11。处理这个问题的最好方法是use a third-party dependency,但是当你观察到JDT在这样做的时候,它会自食其果。我打开了an issue,它在一段时间前被修复了,但是很难找到一个包含更改并在Java10上工作的工件。我所知道的第一个工件来自Eclipse Photon I20180531-0700。

在Eclipse的plugins文件夹中执行以下命令(@people from the future:您可能需要更新版本):

代码语言:javascript
复制
mvn install:install-file \
    -Dfile=org.eclipse.jdt.core_3.14.0.v20180528-0519.jar \
    -DgroupId=org.eclipse.tycho \
    -DartifactId=org.eclipse.jdt.core \
    -Dversion=3.14.0.v20180528-0519 \
    -Dpackaging=jar

然后你可以像下面这样使用它作为Maven编译器插件的依赖项:

代码语言:javascript
复制
<dependency>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>tycho-compiler-jdt</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>org.eclipse.jdt.core</artifactId>
    <!-- unreleased version that was pulled from Eclipse Photon I20180531-0700
            contains the fix and compiles Java 10 -->
    <version>3.14.0.v20180528-0519</version>
</dependency>

使用a demo project on GitHubon java9.wtf也描述了这个问题。(我忘记推送了,所以现在只在线了五分钟。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50818884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档