2011-02-24 107 views
3

我想將一些.java文件編譯成JAR。我想在另一個應用程序中使用這個JAR文件。在螞蟻編譯中包含JAR文件

這是在我的第二個應用程序中使用我的第一個應用程序的功能的好方法嗎?我的目標是不重複代碼。

如何編輯第二個應用程序的build.xml文件以包含我創建的JAR文件?當我編譯我的項目,從JAR文件中的函數都沒有解決:

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

編輯:
當我在build.xml添加javac任務,編譯失敗,因爲其他包都沒有發現:

[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]     ^

爲什麼我在包含JAR文件後未找到原始包?

回答

5

是的。一般而言,將功能細分爲重用庫,易於開發等是一種很好的做法。如果單獨構建它們,它可以加快開發速度,並且可以輕鬆地將功能分發到後續項目。

你可以這樣引用您的罐子:

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

javac文檔的詳細信息。

+0

感謝您的回答。 – TheFrancisOne 2011-02-24 16:09:06

+0

感謝您的回答。 但是當我在我的構建中添加javac任務。xml,現在編譯失敗,因爲沒有找到其他軟件包: [javac]編譯1個源文件 [javac] C:\ HelloWorld \ src \ com \ example \ hellowolrd \ HelloWorld.java:3:package android.app not存在 [javac] import android.app.Activity; [javac]^ 包含.jar文件之後,爲什麼我的原包還未找到? – TheFrancisOne 2011-02-24 16:28:29

+0

這與添加該jar無關。你需要指定該罐旁邊*其他*罐子? – 2011-02-24 17:13:44

0

您需要將您的JAR添加到您的類路徑中。

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

更多信息,請參見here

+0

感謝您的回答。 但是,當我在我的build.xml中添加javac任務時,編譯失敗,因爲未找到其他程序包: [javac]編譯1個源文件 [javac] C:\ HelloWorld \ src \ com \ example \ hellowolrd \ HelloWorld.java:3:包android.app不存在 [javac] import android.app.Activity; [javac]^ 包含.jar文件之後,爲什麼我的原包還未找到? – TheFrancisOne 2011-02-24 16:28:14

0

在javac任務中使用classpath或classpathref屬性,或者包含嵌套的類路徑元素,如javac ant task documentation中所述。

注意:Java中的包應該是小寫的。

+0

感謝您的回答。 但是當我在我的build.xml添加javac任務,現在編譯失敗,因爲其他包都沒有發現: [javac的]源文件編譯 [javac的] C:\ HelloWorld的\ SRC \ COM \例子\ hellowolrd \ HelloWorld.java:3:包android.app不存在 [javac] import android.app.Activity; [javac]^ 包含.jar文件之後,爲什麼我的原包還未找到? – TheFrancisOne 2011-02-24 16:28:49