【发布时间】:2018-06-12 11:18:47
【问题描述】:
我目前正在使用 Java 8,并希望迁移到 Java 11。
下面列出的 jdeps -P -jdkinternals ... 命令在 Java 10 中不受支持。
sun.rmi.server.UnicastRef
sun.rmi.server.UnicastRef2
sun.rmi.transport.Endpoint
sun.rmi.transport.LiveRef
sun.rmi.transport.tcp.TCPEndpoint
有人可以帮我寻找上述课程的替代品吗?
JDK 11 中 JDEPS 的输出:
digraph "AppCore.jar" {
// Path: D:\jdeps\srclib\AppCore.jar
"com.util.RMIServer" -> "sun.rmi.server.UnicastRef (JDK internal API (java.rmi))";
"com.util.RMIServer" -> "sun.rmi.server.UnicastRef2 (JDK internal API (java.rmi))";
"com.util.RMIServer" -> "sun.rmi.transport.Endpoint (JDK internal API (java.rmi))";
"com.util.RMIServer" -> "sun.rmi.transport.LiveRef (JDK internal API (java.rmi))";
"com.util.RMIServer" -> "sun.rmi.transport.tcp.TCPEndpoint (JDK internal API (java.rmi))";
"com.util.WrappedPostlessSocket" -> "sun.rmi.transport.proxy.RMISocketInfo (JDK internal API (JDK removed internal API))";
}
谢谢。
【问题讨论】:
-
如果您的应用程序直接使用这些类,它有问题,你需要修复它。 Java 本身可以使用这些类。
-
@Tschallacka 是的,我查看了包名,它是
java.rmi.registry,并且在该页面上特别提到它从 Java 1.1 开始就存在,这不是包之一OP提到的,你提到的包java.rmi.server从Java 1.1开始也存在,你发明的包java.rmi.transport和java.rmi.transport.tcp根本不存在于任何版本的Java中。你的观点? -
直接使用
sun.*类是总是错误的,二十多年来一直有关于这个问题的具体警告。发布相关代码,我们会告诉你如何修复它。 -
你必须修复它。看起来它仅限于几个类。