【问题标题】:Extending the java.base module (adding classes to the java.net package)扩展 java.base 模块(向 java.net 包添加类)
【发布时间】:2020-10-14 23:32:00
【问题描述】:

JDK 11(well 9)不再允许我将新类放入 java.net 包中(这是扩展现有类以获得对包私有成员的访问权限所必需的)。

我怎样才能做到这一点?

【问题讨论】:

    标签: java-platform-module-system


    【解决方案1】:

    我只是发现无论如何这是不可能的:

    我稍微修改了代码并在 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 中会更好,但是……显然不是。)

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 2016-02-24
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多