首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sun.rmi.server和sun.rmi.transport -Java10不支持jdk内部API

sun.rmi.server和sun.rmi.transport -Java10不支持jdk内部API
EN

Stack Overflow用户
提问于 2018-06-12 19:18:48
回答 1查看 2.2K关注 0票数 -1

我目前使用的是Java 8,并希望迁移到Java 11。

下面列出的jdeps -P -jdkinternals ...命令是Java10不支持的类。

代码语言:javascript
运行
复制
sun.rmi.server.UnicastRef
sun.rmi.server.UnicastRef2 
sun.rmi.transport.Endpoint 
sun.rmi.transport.LiveRef 
sun.rmi.transport.tcp.TCPEndpoint 

有没有人可以帮我在上面列出的类中搜索替代类?

JDK11中JDEPS的输出:

代码语言:javascript
运行
复制
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))";
}

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 22:57:55

JDK11允许我们使用少量的内部,通过导出带有警告API的项目中的模块,如下所示:

代码语言:javascript
运行
复制
warning: UnicastRef is internal proprietary API and may be removed in a future release.

警告清楚地说明了将要发生的事情。

命令:

代码语言:javascript
运行
复制
javac --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED RMIServer.java  

Where, java.rmi -> is a module name,
       sun.rmi.server -> is the package name,
       RMIServer.java -> Class in which package sun.rmi.server is imported.

在java 9中,有几个其他内部API被移到jdk.interner...*包中,它们可以在没有任何警告的情况下进行访问,如下所示:

代码语言:javascript
运行
复制
javac --add -exports jdk.management.agent/jdk.internal.agent=ALL-UNNAMED HelloWorld.java  

注意:此问题与是否在应用程序代码中直接使用内部接口无关。由于早在几年前就有使用15+内部API开发的软件产品,它们仍然存在于Java8中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50815877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档