我的代码在一个JAR文件中运行,比如说foo.jar,我需要在代码中知道运行foo.jar的文件夹.
所以,如果foo.jar在C:\FOO\,我想要获得该路径,无论我当前的工作目录是什么.
是否有一个独立于平台的Java语句来从与Java源代码不同的目录中加载本机库?我想用这样的东西:
public class HelloWorld {
static {
System.loadLibrary("../some_project/HelloWorld");
}
public static native void print();
}
Run Code Online (Sandbox Code Playgroud)
问题是System.loadLibrary()不支持pathname参数中的目录分隔符.另外,不幸的是,System.load()需要一个绝对路径名,这不仅意味着我不能像上面那样指定一个相对目录(我想做),但它还要求参数包括,例如,前面的Linux系统上JNI库名称的"lib"和".so"扩展名.
有没有一种标准的处理方式?如果可能的话,我想避免编写一堆依赖于平台的Java代码来构造正确的JNI库名.
我有一个spring boot web应用程序,我使用java -jar application.jar运行.我需要从代码中获取jar父文件夹路径.我怎么能做到这一点?
我已经尝试过这个,但没有成功.