【发布时间】:2018-04-08 02:41:55
【问题描述】:
我正在尝试制作一个 .bat 脚本,仅用于运行我尝试使用 JNI 的 java 文件,但我遇到了一个有趣的问题。
脚本所在的目录名为NativeMethodTest,并包含一个名为out的文件夹
现在,当我在 out 文件夹中时,我可以使用
java HelloWorld
它工作正常,但是当我在父文件夹中时,它似乎开始使用命令运行 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
【问题讨论】:
-
您不能在 Java 中指定(或修改)java.library.path。
标签: java compilation