在Java9中在运行时为本机库添加新路径

ope*_*ngo 5 reflection java-native-interface java-9

我有一个包含一些本机代码的应用程序.为了方便用户安装和运行,我一直在运行时扩展私有字段ClassLoader.sys_paths,如上一个问题所述:在Java中为运行时的本机库添加新路径.有了这个hack,应用程序可以使用简单的unadorned java -jar app.jar命令运行,并且本机对象将正确定位在安装目录中.

这种技术在Java 9中不再起作用(请参阅如何解决InaccessibleObjectException("无法使{member}可访问:模块{A}在Java 9上没有'打开{package}'到{B}").本文描述了对Java 9的更改并建议了一个解决方案(在命令行中添加参数以打开模块),但这违背了我允许简单执行java命令的初衷.

有没有办法在运行时更改本机库搜索路径,或者这被认为是太多的负载枪留下来?