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

Reflection 在Java9中为本机库在运行时添加新路径,reflection,java-native-interface,java-9,Reflection,Java Native Interface,Java 9,我有一个包含一些本机代码的应用程序。为了方便用户安装和运行,我一直在运行时扩展私有字段ClassLoader.sys_路径,如前一个问题所述:。通过这种方法,应用程序可以使用一个简单的、未经修饰的java-jarapp.jar命令运行,本地对象将正确地定位在安装目录中 这种技术在Java9中不再有效(请参阅)。本文描述了对Java9的更改,并提出了一种解决方案(向命令行添加参数以打开模块),但这违背了我允许简单执行Java命令的初衷 是否有任何方法可以在运行时更改本机库搜索路径,或者这是否被认为

我有一个包含一些本机代码的应用程序。为了方便用户安装和运行,我一直在运行时扩展私有字段ClassLoader.sys_路径,如前一个问题所述:。通过这种方法,应用程序可以使用一个简单的、未经修饰的
java-jarapp.jar
命令运行,本地对象将正确地定位在安装目录中

这种技术在Java9中不再有效(请参阅)。本文描述了对Java9的更改,并提出了一种解决方案(向命令行添加参数以打开模块),但这违背了我允许简单执行Java命令的初衷


是否有任何方法可以在运行时更改本机库搜索路径,或者这是否被认为是一把装了太多东西的枪而不能到处乱放?

您应该等待JDK 9的新EA版本。他们决定默认情况下允许JDK 9中的深度反射访问,因此不需要额外的命令行参数:。然而,这在JDK10中将会改变。