我试图创建一个.bat
脚本只是为了运行一个java文件,我尝试使用JNI,但我有一个有趣的问题。
脚本所在的目录名为NativeMethodTest
,并包含一个名为out
的文件夹
现在当我在out
文件夹中时,我可以用左
java HelloWorld
它只是工作正常,但当我在父文件夹中时,似乎用命令
启动runnig
java -cp "./out" HelloWorld
但是我得到了这个错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
at java.base/java.lang.System.loadLibrary(Unknown Source)
at HelloWorld.<clinit>(HelloWorld.java:8)
但HelloWorld.java包含此行
System.setProperty("java.library.path", "D:\\projects\\NativeMethodTest\\out\\.");
它设置我的库路径绝对,所以它应该工作,当我在同一个文件夹,但不在父,请帮助
的感谢
这里是文件夹结构:
./NativeMethodTest/run.bat
./NativeMethodTest/out/hello.dll
./NativeMethodTest/out/HelloWorld.class
答案 0 :(得分:0)
getProperty("java.library.path")
方法给出了路径,所以我做了一个错误的假设,但是感谢Elliott我把我的脚本修改为java -cp "./out" -Djava.library.path=".\out\." HelloWorld
<登记/>
从父母那里现在也可以正常工作,