With JDK 26 removing Unsafe
memory access methods, my plugin now requires access to the jdk.internal.misc
package. At runtime, this means IJ must be launched with the following VM option:
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
Since my plugin relies on reflective access to otherwise restricted APIs, this is the simplest way to ensure compatibility.
I assume other plugins may face similar issues. Are there plans to address this? Ideally, to avoid requiring users to manually modify command-line options, it would be helpful if plugins could declare VM option requirements in plugin.xml
or build.gradle.kts
. Is something like this feasible?