扩展 java.base 模块(将 类 添加到 java.net 包中)
Extending the java.base module (adding classes to the java.net package)
JDK 11(well 9)不再允许我将新的 class 放入 java.net
包中(这是扩展那里现有的 classes 所必需的获得对包私有成员的访问权限)。
我怎样才能做到这一点?
我只是发现无论如何这是不可能的:
我稍微更改了代码并在 JDK 8 下构建了它(为此挖掘了一个古老的 Debian oldstable 系统),但是它在 JRE 8 运行时失败了:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.net
Turns out that it’s not permitted to access JVM “internals”. Not even for useful, and presumably permittable, extensions with a ready-made API for them.
(我为 Android 做过同样的工作,并且通过一些反射,它在那里工作......主要......所以我认为它在 OpenJDK,但是……显然不是。)
JDK 11(well 9)不再允许我将新的 class 放入 java.net
包中(这是扩展那里现有的 classes 所必需的获得对包私有成员的访问权限)。
我怎样才能做到这一点?
我只是发现无论如何这是不可能的:
我稍微更改了代码并在 JDK 8 下构建了它(为此挖掘了一个古老的 Debian oldstable 系统),但是它在 JRE 8 运行时失败了:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.net
Turns out that it’s not permitted to access JVM “internals”. Not even for useful, and presumably permittable, extensions with a ready-made API for them.
(我为 Android 做过同样的工作,并且通过一些反射,它在那里工作......主要......所以我认为它在 OpenJDK,但是……显然不是。)