Include JAR file in ant compilation

2019-07-02 11:13发布

问题:

I want to compile some .java files into a JAR. I would like to use this JAR file in another application.

Is this a good way to use functions from my first application in my second application? My goal is to not duplicate code.

How can I edit the build.xml file for the second application to include the JAR file I created? When I compile my project, functions from JAR files are not resolved :

[javac] C:\HelloWorld\src\com\example\helloworld\HelloWorld.java:7: 
        package TOOLS does not exist  
[javac] import TOOLS.Logs;

EDIT:
When I add the javac task in my build.xml, compilation fails because other packages are not found:

[javac] Compiling 1 source file
[javac] C:\HelloWorld\src\com\example\hellowolrd\HelloWorld.java:3: 
        package android.app does not exist
[javac] import android.app.Activity;
[javac]                   ^

Why are my original packages not found after I include the JAR file?

回答1:

Yes. It's good practice generally to subdivide functionality into libraries for reuse, ease-of-development etc. It'll speed development if they're separately built, and you can easily distribute functionality to successive projects.

You can reference your jar thus:

  <javac srcdir="${src}"
         destdir="${build}"
         classpath="xyz.jar"
         debug="on"
  />

See the javac documentation for more information.



回答2:

You need to add your JAR to your classpath.

 <javac srcdir="${src}"
         destdir="${build}"
         classpath="xyz.jar"
         debug="on"
         source="1.4"
  />

See here for more info.



回答3:

Use the classpath or classpathref attribute in the javac task, or include a nested classpath element, as described in the javac ant task documentation.

Note : packages in Java should be in lowercase.



标签: java ant jar