为了账号安全,请及时绑定邮箱和手机立即绑定

在Javac中使用内部Sun类

在Javac中使用内部Sun类

红糖糍粑 2019-12-26 14:08:18
有没有一种方法可以禁用Javac 1.6.0_22的限制,这些限制阻止我使用JRE内部类sun.awt.event.*?我不是在寻找:解释为什么它被禁止。建议使用不同的班级建议使用反射建议使用ecj / eclipse我只想知道是否有可能,是否有可能。
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

我自己找到了答案。

当javac编译代码时rt.jar,默认情况下它不会链接。而是使用lib/ct.sym带有类存根的特殊符号文件。

令人惊讶的是,该文件包含许多但不是全部内部sun类。在我的情况下,这些内部比平常多的类是sun.awt.event.IgnorePaintEvent

我的问题的答案是: javac -XDignore.symbol.file

这就是javac用于编译的内容rt.jar


查看完整回答
反对 回复 2019-12-26
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果您使用的是Maven,除了@ marcin-wisnicki的答案外,请注意,除非您另外指定,否则编译器插件将静默删除任何-XD标志, <fork>true</fork>例如:


<build>

    <plugins>

        <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-compiler-plugin</artifactId>

            <version>3.3</version>

            <configuration>

                <source>1.7</source>

                <target>1.7</target>

                <compilerArgs>

                    <arg>-XDignore.symbol.file</arg>

                </compilerArgs>

                <fork>true</fork>

            </configuration>

            ...


查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 350 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信