我有以下ant目标来使用JNI call运行我的 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>