Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ant编译Java-发生keep getting错误JNI错误_Java_Eclipse_Ant - Fatal编程技术网

使用Ant编译Java-发生keep getting错误JNI错误

使用Ant编译Java-发生keep getting错误JNI错误,java,eclipse,ant,Java,Eclipse,Ant,我正在努力提高我的编码/开发技能,我对使用Ant还不熟悉。我的目标是能够从命令行编译比“Hello World”更复杂的程序。我试图编译和运行的程序使用API中存储的库,我想我已经在build.xml文件中包含了正确的路径,代码将编译和jar(当我使用ant compile和ant jar命令时),但是当我运行它时,我会得到一个运行时错误 这是我的Ant构建文件: <project name="Main" basedir="." default="main"> <propert

我正在努力提高我的编码/开发技能,我对使用Ant还不熟悉。我的目标是能够从命令行编译比“Hello World”更复杂的程序。我试图编译和运行的程序使用API中存储的库,我想我已经在build.xml文件中包含了正确的路径,代码将编译和jar(当我使用ant compile和ant jar命令时),但是当我运行它时,我会得到一个运行时错误

这是我的Ant构建文件:

<project name="Main" basedir="." default="main">
<property name="src.dir"     value="src"/>
<property name="build.dir"   value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir"     value="lib"/>
<property name="main-class"  value="myProject.Main"/>

 <target name="clean">
     <delete dir="${classes.dir}"/>
 </target>
 <target name="compile" depends="clean">
     <mkdir dir="${classes.dir}"/>
     <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
        <classpath>
                 <path location="${jar.dir}/dropbox-core-sdk-1.7.7.jar"/>
                 <path location="${jar.dir}/jackson-core-2.2.4.jar"/>
        </classpath>
     </javac>
 </target>

 <target name="jar" depends="compile">
     <mkdir dir="${jar.dir}"/>
     <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
        <manifest>
            <attribute name="Main-Class" value="${main-class}"/>
        </manifest>
    </jar>
</target>

<target name="run" depends="jar">
    <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
</target>

<target name="clean-build" depends="clean,jar"/>

<target name="main" depends="clean,run"/>

我真的很感激任何帮助

编译时将类路径设置为
dropbox-core-sdk-1.7.7.jar
jar,但没有使用该类路径运行代码。您需要对
java
任务执行相同的操作,否则JVM将找不到第三方类

<java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
    <classpath>
             <path location="${jar.dir}/dropbox-core-sdk-1.7.7.jar"/>
             <path location="${jar.dir}/jackson-core-2.2.4.jar"/>
    </classpath>
</java>

我也有同样的错误。事实证明,Eclipse在用于Ant Home(外部Ant安装)的Eclipse设置中使用了符号链接

我通过将Eclipse的蚂蚁之家更改为一个确定的位置来解决这个问题


在Eclipse
窗口中
->
首选项
然后
Ant
->
运行时
然后单击右侧的
Ant Home…
按钮并选择正确的Ant安装目录。

哈哈,我是个目光短浅的白痴。这正好解决了我的问题。实际上,我的问题是我把我的Ant主页指向了C:\ApacheTomcat,而不是C:\apache-Ant。谢谢!这让我发疯了!你救了我的一天(或者更确切地说:我的夜晚)!
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
    <classpath>
             <path location="${jar.dir}/dropbox-core-sdk-1.7.7.jar"/>
             <path location="${jar.dir}/jackson-core-2.2.4.jar"/>
    </classpath>
</java>