我有一个包含一些本机代码的应用。为了方便用户安装和运行,我一直在运行时扩展私有字段ClassLoader.sys_paths,如上一个问题所述:Adding new paths for native libraries at runtime in Java。有了这个hack,应用程序可以使用简单的简单AddComponent
命令运行,并且本机对象将在安装目录中正确定位。
此技术在Java 9中不再有效(请参阅How to solve InaccessibleObjectException ("Unable to make {member} accessible: module {A} does not 'opens {package}' to {B}") on Java 9?)。本文描述了对Java 9的更改并建议了一个解决方案(在命令行中添加参数以打开模块),但这违背了我允许简单执行java命令的初衷。
有没有什么方法可以在运行时更改本机库搜索路径,或者这被认为是一个装满枪的过多的谎言?