【发布时间】:2020-10-14 23:32:00
【问题描述】:
JDK 11(well 9)不再允许我将新类放入 java.net 包中(这是扩展现有类以获得对包私有成员的访问权限所必需的)。
我怎样才能做到这一点?
【问题讨论】:
标签: java-platform-module-system
JDK 11(well 9)不再允许我将新类放入 java.net 包中(这是扩展现有类以获得对包私有成员的访问权限所必需的)。
我怎样才能做到这一点?
【问题讨论】:
标签: java-platform-module-system
我只是发现无论如何这是不可能的:
我稍微修改了代码并在 JDK 8 下构建了它(为此挖掘了一个古老的 Debian oldstable 系统),但它在运行时使用 JRE 8 失败了:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.net
Turns out 不允许访问 JVM “内部”。甚至 useful, and presumably permittable, extensions with a ready-made API for them 也不行。
(我在 Android 上做过同样的工作,并且通过一些反射,它在那里工作……主要是……所以我认为它在 OpenJDK 中会更好,但是……显然不是。)
【讨论】: