6

这个错误很奇怪,我无法理解。我已经安装了 EclipseRCP 3.5.1、Java SE 1.6 更新 16 并切换到 SWT 3.5。我创建了一个新项目,设置了依赖项并尝试编译。尝试导入时,请使用以下命令:

import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;

我得到错误:

Access restriction: The type XMLSerializer is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar.

我已经谷歌了,在这里阅读了一些回复..问题仍然存在。有趣的是,如果我使用以前的 EclipseRCP(版本:3.4.2),这个问题永远不会发生。3.4.2版本使用相同的JRE版本,我刚刚测试了SWT版本。工作正常。我猜这个问题出在新 IDE 的一些插件上。有任何想法吗?

PS我找到了这篇文章。但如果我不需要,我不喜欢或不想更改代码。先说问题的根源是什么,然后解决方法。。

4

3 回答 3

10

Eclipse 编译器的默认配置过于严格。您可以通过打开 Java -> Compiler -> Errors/Warnings 的首选项并在“已弃用和受限制的 API”下将“禁止引用(访问规则)”的设置从错误更改为警告或忽略来放松它。

然而,一个问题是您是否真的想使用 com.sun.-package 中的类,因为您不能保证这些类在来自不同供应商的 VM 或来自 Sun 的较新 VM 中可用。

于 2009-10-04T23:01:12.877 回答
1

对于遇到类似问题并且似乎无法使 Eclipse 设置正常工作的任何人(例如我刚才),请注意:检查项目特定设置中的“禁止引用”是否设置为“错误” .

于 2009-11-16T12:24:03.027 回答
1

我将发布到这个旧线程,仅供将来遇到此问题的任何人参考。

我遇到了同样的问题,但这是因为我在使用 1.6 编译器时将编译器合规级别设置为 1.5。javax.activation如果合规级别设置为低于 1.6,则1.6 中包含的所有好东西(如,以及上面提到的一些 xml 功能)都将受到 1.6 编译器的“限制”。我只需要添加适当的库(例如activation.jar)就可以解决我的问题。

于 2010-10-08T19:26:45.977 回答