我如何访问这个特定的课程?

问题描述 投票:0回答:2

有问题的类是

sun.security.tools.KeyTool
,我正在使用 OpenJDK 7。不过,我一直收到“找不到符号”的消息,而且我不是 Java 专家,所以我无法通过文档弄清楚为什么会出现这种情况,或者如果它消失了。有什么想法吗?

确切的错误消息:

Main.java:1: error: cannot find symbol
import sun.security.tools.KeyTool;
                         ^
  symbol:   class KeyTool
  location: package sun.security.tools

代码:

import sun.security.tools.KeyTool;

public class Main {
    public static void main(String[] args) {
    }
}
java-7 java sun
2个回答
2
投票

尝试使用

javac -XDignore.symbol.file ...

默认情况下,

javac
限制它向用户公开的类。这通常可以帮助用户避免意外依赖非公共 Java API 但恰好在当前 JRE/JDK 中可用的(不受支持的)类。 “安全”类的列表在
ct.sym
文件中描述。
ignorel.symbol.file
系统属性告诉 javac 忽略该文件并使用 JDK/JRE 中可用的所有类。

并确保添加

tools.jar
,其中该类被定义到 javac 的类路径中。


0
投票

在 Java 8+ 中,该类移至

sun.security.tools.keytool.Main
,您可以通过
javac --add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED

访问它
© www.soinside.com 2019 - 2024. All rights reserved.