首页 > 解决方案 > 用于在 Java 17 中运行时打开整个模块的 JVM 标志

问题描述

我正在寻找一种在 Java 17 中打开整个模块而不是特定包的方法,并且我正在寻找 JVM 标志,例如--add-opens. 我无权访问该模块,因此无法修改module-info.java文件,因此我需要在运行时将其作为 JVM 标志来执行。

我正在尝试为许多不同的模块提供对第三方序列化库的完全反射访问,但我无法预先知道该库需要访问哪些包,因此我只想让它访问整个模块。更好的是,我希望特定库绕过所有反射访问检查,但我认为这已在 Java 17(--illegal-access标志)中删除。

这在版本 17 中可能吗?如果不是,您将如何让图书馆访问所有内容?库维护者尚未发布正确支持封装模块系统的新版本,他们可能无法做到这一点,因为功能的性质需要深度反射才能工作。

标签: javajava-module

解决方案


推荐阅读