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) {
}
}
尝试使用
javac -XDignore.symbol.file ...
。
默认情况下,
javac
限制它向用户公开的类。这通常可以帮助用户避免意外依赖非公共 Java API 但恰好在当前 JRE/JDK 中可用的(不受支持的)类。 “安全”类的列表在 ct.sym
文件中描述。 ignorel.symbol.file
系统属性告诉 javac 忽略该文件并使用 JDK/JRE 中可用的所有类。
并确保添加
tools.jar
,其中该类被定义到 javac 的类路径中。
在 Java 8+ 中,该类移至
sun.security.tools.keytool.Main
,您可以通过 javac --add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED
访问它