【发布时间】:2013-05-03 16:18:23
【问题描述】:
我有以下 ant 目标来使用 JNI 调用 运行我的 Java 应用程序。我能够通过我的 run.sh 文件(在 Linux 中)运行该应用程序。我总是在 ant 上得到 java.lang.UnsatisfiedLinkError。
我的库(包装器)与另一个库 libB 链接。似乎找不到 ./JNI/mtflib/lib 目录下的 libB 。它在我提供的路径上。
我尝试了路径的“:”、“;”和“,”分隔符。 我尝试了 jvmarg value="-Djava.library.path= 和 "sysproperty key="java.library.path" path=" 选项。fork 设置为 true。
<target name="run" depends="echo, copyLogViewer"
description="Run application from development environment">
<java classname="${program.main}"
classpathref="compile.classpath"
fork="true">
<jvmarg value="-Xmx${MAX_MEMORY}m"/>
<jvmarg value="-Xms${MIN_MEMORY}m"/>
<jvmarg value="-XX:NewSize=${YOUNG_MEMORY}m"/>
<arg value="-v"/>
<jvmarg value="-splash:resources/images/splash/splash.gif"/>
<!--jvmarg value="-Djava.library.path=.:./JNI:./JNI/mtflib:./JNI/mtflib/lib:./JNI/mtflib/parse:${java.library.path}"/-->
<sysproperty key="java.library.path" path=".:./JNI:./JNI/mtflib:./JNI/mtflib/lib:./JNI/mtflib/parse:${java.library.path}"/>
</java>
</target>
【问题讨论】:
标签: java ant java-native-interface