使用 ant 命令行添加 jar 文件以在 java 项目中添加 class
Adding jar file to add class in a java project using ant command line
我在网上找了几个小时,但找不到以下问题的答案...
我有一个 android 项目可以在 MacOSX 上使用 "ant release" 命令行正常运行(由于各种原因我不能使用 Eclipse 或 Android Studio 等)。我需要扩展包含在 jar 文件中的第 3 方 class(称为 mididriver.jar)。
我在主 java 源文件中添加了以下行:
导入 mididriver.*;
我需要向我的 build.xml 文件添加什么以及我应该将 mididriver.jar 文件放在我的项目文件夹结构中的什么位置,这样它就不会给我一个 "package mididriver does not exist" 错误?
非常感谢(提前)!
这是我的 build.xml 的内容,它在我添加新的 class 之前有效:
<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>
在您的项目中创建一个 lib 目录
my-project
src
target
lib
将jar放入lib目录
修改javac任务,将lib目录添加到class路径中。
<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构建?我不知道如何为 ndk-build 指定 class 路径。必须有一些选项,例如 -classpath
.
好吧,在多次尝试定义 lib 文件夹失败后,我将 jar 文件放在现有的 libs 文件夹中,现在构建成功了...
我在网上找了几个小时,但找不到以下问题的答案... 我有一个 android 项目可以在 MacOSX 上使用 "ant release" 命令行正常运行(由于各种原因我不能使用 Eclipse 或 Android Studio 等)。我需要扩展包含在 jar 文件中的第 3 方 class(称为 mididriver.jar)。 我在主 java 源文件中添加了以下行:
导入 mididriver.*;
我需要向我的 build.xml 文件添加什么以及我应该将 mididriver.jar 文件放在我的项目文件夹结构中的什么位置,这样它就不会给我一个 "package mididriver does not exist" 错误?
非常感谢(提前)!
这是我的 build.xml 的内容,它在我添加新的 class 之前有效:
<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>
在您的项目中创建一个 lib 目录
my-project
src
target
lib
将jar放入lib目录
修改javac任务,将lib目录添加到class路径中。
<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构建?我不知道如何为 ndk-build 指定 class 路径。必须有一些选项,例如 -classpath
.
好吧,在多次尝试定义 lib 文件夹失败后,我将 jar 文件放在现有的 libs 文件夹中,现在构建成功了...