Ant apache和Native Libraries

时间:2015-07-17 17:03:33

标签: java ant native

我目前正在尝试使用ant apache来构建项目。但是,每当我尝试输入" ant"要开始构建,此错误消息显示在我的终端上:

 [java] Exception in thread "main" java.lang.UnsatisfiedLinkError: no em1dFwdJava in java.library.path
 [java]     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
 [java]     at java.lang.Runtime.loadLibrary0(Runtime.java:845)
 [java]     at java.lang.System.loadLibrary(System.java:1084)

奇怪的是,当我运行我的em1dFwdJava.java时,它编译并运行完全正常。 em1dFwdJava.java将loadLibrary用于本机库。对于这个项目,我使用两个库,libem.dylib和dipole.dylib。我相信我有可能需要在build.xml中包含这两个库。如果是这样,我不知道在不弄乱我的构建的情况下在哪里包含两个库。下面是我正在使用的build.xml:

    <project name='JPPF Application' basedir="." default="run">

    <property name="build.properties.file" value="${basedir}/build.properties"/>
  <property file="${build.properties.file}"/>
    <property name="lib.dir"    value="${basedir}/lib"/>
    <property name="config.dir"  value="${basedir}/config"/>
    <property name="classes.dir" value="${basedir}/classes"/>   
    <property name="src.dir"     value="${basedir}/src"/>


    <path id="project.classpath">
        <pathelement location="${config.dir}"/>
        <pathelement location="${classes.dir}"/>
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    </path>


    <target name="clean">
        <delete dir="${classes.dir}" quiet="true"/>
    </target>               


    <target name="init" description="Initialize ressources">
        <mkdir dir="${classes.dir}"/>
    </target>


    <target name="compile" depends="clean, init">
        <javac srcdir="" destdir="${classes.dir}"
            debug="on" deprecation="off" optimize="on" includes="**/*.java">
        <classpath refid="project.classpath"/>
        <compilerarg line="-Xlint:unchecked"/>
            <src path="${src.dir}"/>
        </javac>
    </target>


    <target name="build" description="build the application" depends="clean, init, compile">
        <mkdir dir="${classes.dir}"/>
    </target>


    <target name="run" description="run the application" depends="build">
        <java fork="yes" classname="${main.class}" classpathref="project.classpath">
            <jvmarg value="-Djppf.config=jppf.properties"/>
            <jvmarg value="-Djava.util.logging.config.file=config/logging.properties"/>
            <jvmarg value="-Xmx64m"/>
        </java>
    </target>

    </project> 

1 个答案:

答案 0 :(得分:0)

选项1: 添加java -Djava.library.path =“路径到em1dFwdJava”

选项2: 将LD_LIBRARY_PATH environmet变量添加到em1dFwdJava的路径。