【问题标题】:ANT to launch Java App with JNI libraryANT 使用 JNI 库启动 Java 应用程序
【发布时间】: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


    【解决方案1】:

    请使用这个:

    <env key="LD_LIBRARY_PATH" path="..."/>
    

    而不是上面的java.library.path ...

    至少在 Linux 系统中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      相关资源
      最近更新 更多