ライブラリを使用する JNI を学習していて、チュートリアルはhttps://www.baeldung.com/jniです。Javaソースファイルは
package zxy;
public class JNIDemo {
public native void testHello();
public static void main(String[] args){
System.loadLibrary("native");
JNIDemo jniDemo = new JNIDemo();
jniDemo.testHello();
System.out.println("zxy");
}
}
プロジェクトディレクトリは次のとおりです。
/src/main/java/zxy
|->JNIDemo.java
/libs
|-> libnative.so
build.gradle
gradlew
settings.gradle
build.gradle ファイルは
plugins {
id 'application'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
application {
mainClass = 'zxy.JNIDemo'
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
implementation files('libs/libnative.so')
}
そしてsettings.gradleは
rootProject.name = 'jni'
を実行する./gradlew installDist
と、正常に動作し、次のディレクトリ構造が得られます
build/
|-> /install/jni
|-> /bin
|-> jni
|-> jni.bat
|-> /lib
|-> jni-1.0-SNAPSHOT.jar
|-> libnative.so
しかし、私が走るときbuild/install/jni/bin/jni
、私は私に与えます
Exception in thread "main" java.lang.UnsatisfiedLinkError: no native in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at zxy.JNIDemo.main(JNIDemo.java:8)
FAILURE: Build failed with an exception.
理由がわかりません。コマンドに java.library.path を含めるにはどうすればよいですかgradlew installDist