添加jar文件以使用ant命令行在java项目中添加类

时间:2015-05-26 08:07:31

标签: java android ant jar import

我在网上看了几个小时但找不到以下问题的答案...... 我有一个使用" ant release"运行正常的android项目。 MacOSX上的命令行(由于各种原因我不能使用Eclipse或Android Studio等)。我需要扩展一个包含在jar文件中的第三方类(称为mididriver.jar)。 我在主java源文件中添加了以下行:

import mididriver。*;

我需要将什么添加到我的build.xml文件中?我应该将mididriver.jar文件放在我的项目文件夹结构中,以便它不会给我一个"包mididriver不存在"错误?

非常感谢(提前)!

以下是我在添加新类之前的build.xml的内容:

<project name="MyProject" default="debug">
  <loadproperties srcFile="local.properties"/>
  <loadproperties srcFile="project.properties"/>
  <target name="clean" depends="android_rules.clean">
    <delete dir="libs"/>
    <delete dir="obj"/>
    <exec executable="${ndk.dir}/ndk-build" dir="${basedir}" failonerror="true">
      <arg value="clean"/>
    </exec>
  </target>
  <target name="-pre-build">
    <condition property="makefileConfig" value="Debug" else="Release">
      <equals arg1="${ant.project.invoked-targets}" arg2="debug"/>
    </condition>
    <condition property="ndkDebugValue" value="NDK_DEBUG=1" else="NDK_DEBUG=0">
      <equals arg1="${ant.project.invoked-targets}" arg2="debug"/>
    </condition>
    <condition property="app_abis" value="armeabi-v7a" else="armeabi-v7a">
      <equals arg1="${ant.project.invoked-targets}" arg2="debug"/>
    </condition>
    <exec executable="${ndk.dir}/ndk-build" dir="${basedir}" failonerror="true">
      <arg value="--jobs=2"/>
      <arg value="CONFIG=${makefileConfig}"/>
      <arg value="${ndkDebugValue}"/>
      <arg value="APP_ABI=${app_abis}"/>
    </exec>
    <delete file="${out.final.file}"/>
    <delete file="${out.packaged.file}"/>
  </target>
  <import file="${sdk.dir}/tools/ant/build.xml"/>
</project>

2 个答案:

答案 0 :(得分:1)

在项目中创建一个lib目录

my-project
   src
   target
   lib

将jar放入lib目录。

修改javac任务,将lib目录添加到类路径中。

<path id="lib.dir">
    <fileset dir="./lib">
        <include name="**/*.jar"/>
    </fileset>
</path>

<javac srcdir="src" destdir="target/classes" >
   <classpath refid="lib.dir"/>
</javac>

我不知道哪个目标不适合你。是javac吗?还是ndk-build?我不知道如何为ndk-build指定类路径。必须有一些选项,如-classpath

答案 1 :(得分:0)

好吧,在多次尝试定义lib文件夹失败后,我将jar文件放在现有的libs文件夹中,现在获得了成功的构建...