當前位置:首頁 » 編程軟體 » Ant編譯class

Ant編譯class

發布時間: 2023-07-06 12:46:45

java web項目開發,用ant將java文件編譯為class文件和直接在Eclipse運行java文件編譯成class,有什麼區別

沒有任何區別。ant是自動化編譯工具,而Eclipse作為IDE,也可以幫助你自動化編譯。編譯的過程都是調用了你安裝的JDK中的java編譯器

⑵ 如何使用Ant來編譯Java文件以及如何運行

一、源文件情況
源文件位置為:D:\temp,源文件名(含包名字):com.ldq.WeatherDemo.java

前提:已安裝 jdk ,並配置好環境變數。

二、過程
1、編譯:
提示符進入 D:\temp 路徑下,輸入:javac com\ldq\WeatherDemo.java
生成類文件:WeatherDemo.class

2、打包:
提示符進入 D:\temp 路徑下,輸入:jar cvf WeatherDemo.jar com\ldq\WeatherDemo.class
生成檔案文件:WeatherDemo.jar

3、修改 MANIFEST.MF 文件:
由於引用了外部的類,所以要添加引用類的路徑,即修改MANIFEST.MF文件。保存如下內容到 D:\temp下,文件名 MANIFEST.MF

Manifest-Version: 1.0
Sealed: true
Main-Class: com.ldq.WeatherDemo
Class-Path: lib/jaxrpc.jar lib/log4j-1.2.8.jar lib/mail.jar lib/saaj.jar lib/tools.jar lib/wsdl4j-1.5.1.jar lib/activation.jar lib/axis.jar lib/axis-ant.jar lib/commons-discovery-0.2.jar lib/commons-logging-1.0.4.jar

注意在後面空兩行。
提示符進入 D:\temp 路徑下,輸入:jar umf MANIFEST.MF WeatherDemo.jar
執行時會提示更新的內容。

4、添加包含引用類的相應文件:
在 D:\temp 路徑下,新建 lib 文件夾,講對應的 jaxrpc.jar ... 拷入其中,此時,即可雙擊(或在提示符下輸入:java -jar WeatherDemo.jar)運行 WeatherDemo.jar 文件了。

三、總結
雙擊運行 jar 文件時,虛擬機會到 jar 文件中下找 .MF 文件,找到對應的 Main-Class 運行,引入的類在 Class-Path 所指路徑。
事實上可以利用 winrar或winzip 工具打開 jar 文件,直接將修改好的 MANIFEST.MF 拷入覆蓋,class文件也可以做同樣的操作,節省了輸入復雜難記的命令。另外,對於 javaME 生成的 jar 文件,限制嚴格些,MANIFEST.MF 文件中有個文件大小的欄位,可以先保存,查看文件大小,再修改保存。
另一種方法是通過 Eclipse - Export - Runnable JAR file 直接生成 jar 文件,此時,所有的引用類都被打包在 jar 文件里了。

⑶ 使用Ant在編譯java類的時候出現以下錯誤,請問是什麼原因呢應該如何解決

泛型類型,javac編譯出錯,加-source1.5
泛型從1.5以後開始有C:>javac
用法:javac<options><sourcefiles>
其中,可能的選項包括:
-g生成所有調試信息
-g:none不生成任何調試信息
-g:{lines,vars,source}只生成某些調試信息
-nowarn不生成任何警告
-verbose輸出有關編譯器正在執行的操作的消息
-deprecation輸出使用已過時的API的源位置
-classpath<路徑>指定查找用戶類文件和注釋處理程序的位置
-cp<路徑>指定查找用戶類文件和注釋處理程序的位置
-sourcepath<路徑>指定查找輸入源文件的位置
-bootclasspath<路徑>覆蓋引導類文件的位置
-extdirs<目錄>覆蓋所安裝擴展的位置
-endorseddirs<目錄>覆蓋簽名的標准路徑的位置
-proc:{none,only}控制是否執行注釋處理和/或編譯。
-processor<class1>[,<class2>,<class3>...]要運行的注釋處理程序的名稱;繞過默認的搜索進程
-processorpath<路徑>指定查找注釋處理程序的位置
-parameters生成元數據以用於方法參數的反射
-d<目錄>指定放置生成的類文件的位置
-s<目錄>指定放置生成的源文件的位置
-h<目錄>指定放置生成的本機標頭文件的位置
-implicit:{none,class}指定是否為隱式引用文件生成類文件
-encoding<編碼>指定源文件使用的字元編碼
-source<發行版>提供與指定發行版的源兼容性
-target<發行版>生成特定VM版本的類文件
-profile<配置文件>請確保使用的API在指定的配置文件中可用
-version版本信息
-help輸出標准選項的提要
-A關鍵字[=值]傳遞給注釋處理程序的選項
-X輸出非標准選項的提要
-J<標記>直接將<標記>傳遞給運行時系統
-Werror出現警告時終止編譯
@<文件名>從文件讀取選項和文件名

⑷ 如何使用ANT在命令行進行編譯和測試

一、環境變數
在網上找到ANT的壓縮包,解壓縮以後放到C盤根目錄如下圖

對,就是這個鬼樣子,放在這里就可以用了,不用安裝之類的
環境變數如下圖:

你要定義ANT_HOME,然後讓系統path找到這個ANT_HOME就行了

二、寫build.xml

你的目錄結構如下圖:

源文件 放在src
引用的jar包放在lib
編譯結果安排在classes

接下來就是build.xml了
如下,自己看吧

[html] view plain
<?xml version="1.0"?>
<project name="pojo_0428" default="prepare" basedir=".">

<property name="source.root" value="src"/>
<property name="class.root" value="classes"/>
<property name="lib.dir" value="lib"/>

<!-- class path for compilation and execution -->
<path id="basepath">
<!-- 運行時 class文件的位置 -->
<pathelement location="${class.root}" />
<!-- jar包 -->
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>

<!--默認的target -->
<target name="prepare">
<delete dir="${class.root}"/>
<mkdir dir="${class.root}"/>
</target>

<!--編譯 -->
<target name="compile" depends="prepare">
<javac srcdir="${source.root}"
destdir="${class.root}"
debug="on"
optimize="off"
deprecation="on">
<classpath refid="basepath"/>
</javac>
</target>
<!--執行。 案常式序的入口 依賴 compile -->
<target name="run" depends="compile">
<java classname="com.javathink.Student" fork="true">
<classpath refid="basepath"/>
</java>
</target>

</project>

⑸ ant編譯build.xml文件

折騰了大半天,可算搗騰出來了,這里需要提醒注意如下幾點:

1、如果jdk是1.6及以下,則需要使用的ant版本是1.9.x;

2、如果jdk是1.8,則需要使用ant版本是1.10.x;

3、可用eclipse導出war包,將lib目錄下的jar包放到一個目錄下,然後直接引用,避免遺漏掉jar包沒導入進去。

以下是build.xml文件內容,安裝好ant後,直接執行ant build.xml即可打包。

<?xml version="1.0" encoding="UTF-8"?>

<!-- 定義一個工程,默認任務為warFile。 -->

<project name="bing-info" default="warFile" basedir=".">

    <!-- 指定jdk 貌似這里指定也沒什麼用~-->

    <property name="env.JAVA_HOME" value="C:/Program Files/Java/jdk1.8.0_101"/>

    <!-- 定義屬性,打成war包的名稱。 -->

    <property name="warFileName" value="nbAPP.war"></property>

    <!-- 指定war包路徑及依賴包路徑   這里需要指定工程的路徑 -->

    <property name="compilePath" value="D:/project/nbAPP"/>

    <!-- 定義路徑,編譯java文件時用到的jar包。 -->

    <path id="project.lib">

        <fileset dir="${basedir}/lib">

            <include name="**/*.jar"/>

        </fileset>

    </path>

    <!-- 定義任務,清空任務:清空原有的class文件,創建新的build路徑。 -->

    <target name="clean">

        <delete dir="${compilePath}/build" />

        <mkdir dir="${compilePath}/build" />

    </target>

    <!-- 定義任務,編譯src文件夾中的java文件,編譯後的class文件放到創建的文件夾下。 -->

    <target name="compile" depends="clean">

        <javac srcdir="${basedir}/src/main" debug="true" includeantruntime="false" encoding="UTF-8" >

            <classpath refid="project.lib">

            </classpath>

        </javac>

    </target>

    <!-- 定義默認任務,將class文件集合成jar包。 -->

    <target name="warFile" depends="compile">

        <!-- 刪除原有war包。 -->

        <delete dir="${compilePath}/${warFileName}" />

        <!-- 建立新war包。 -->

        <war destfile="${compilePath}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">

            <!-- 將非jar和非class文件拷貝到war包的對應路徑下。 -->

            <fileset dir="${basedir}/WebRoot">

                <include name="**/**.*" />

                <exclude name="**/*.jar"/>

                <include name="WEB-INF/classes/**"/>

            </fileset>

            <!-- 將jar和class文件拷貝到war包的對應路徑下。 -->

            <lib dir="${compilePath}/lib" />

            <classes dir="${compilePath}/build" />

            <!-- 將資源文件拷貝進war對應路徑下 -->

            <classes dir="${basedir}/src/main/resources" />

        </war>

    </target>

</project>

⑹ hadoop1.2.1+eclipse: 執行ant編譯錯誤提示:

.在Eclipse中執行Ant的腳本編譯出現問題
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-19
11:40

信息如下:
compile:
[javac]
Compiling 15 source files to
E:\work_home\OakingSecurity\build\classes
[javac] BUILD FAILED:
file:E:/work_home/OakingSecurity/build.xml:48: Unable to find a javac
compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps
JAVA_HOME does not point to the
JDK

我的系統變數設置了JAVA_HOME的,在命令行直接運行ant都沒有問題。
請問這是怎麼回事?是不是還要在Eclipse中設置什麼?

2.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: fengyifan
Posted on: 2003-08-19
21:49

put tools.jar in ant classpath

3.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: babyoracle
Posted on: 2003-08-20
07:42

用這個方法就可以了
http://www.cjsdn.com/post/view?bid=7&id=45620&sty=3&tpg=1&age=0

4.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-22
13:03

在Eclipse的首選項中可以配置ANT_HOME,但又出現如下錯誤:

BUILD FAILED:
java.lang.VerifyError: (class:
org/apache/xerces/parsers/IntegratedParserConfiguration, method:
configurePipeline signature: ()V) Incompatible type for getting or setting
field
Total time: 94 milliseconds

為什麼?

5.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: feng]
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-22
13:12

feng wrote:
put tools.jar in ant
classpath

用Eclipse默認的ANT選項,然後加上tools.jar是可以了,不過它又提示不支持junit任務,暈倒~

[junit]
BUILD FAILED: file:E:/work_home/OakingSecurity/build.xml:76: Could not create
task or type of type: junit.

Ant could not find the task or a class this
task relies upon.

而我用自己下載的Ant1.5.3又出現前面帖子的錯誤提示,為什麼?

6.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-22
13:19

⑺ ant怎麼編譯帶有依賴關系的類

1.所有的類一起編譯。
2.你的父添加到classpath中。
3.ant 中添加 classpath 下邊是例 子。
<javac destdir="${classes.dir}" srcdir="${src.dir}" encoding="UTF-8">
<classpath refid="classespath" />
</javac>

⑻ ant編譯後的class文件為空,是怎麼回事

jad反編譯,你反編譯後再編譯是嗎?不用那麼累用位元組碼工具

⑼ ant編譯報錯的問題

不是代碼的問題,是你引包出現的問題。給的報錯已經很明顯了,EntityDaoHibernate類和EntityDaoHibernate類都有findByHql方法,且簽名相同。檢查你javac標簽下的classpath有沒有引錯包。

熱點內容
android載入界面 發布:2025-02-07 19:55:28 瀏覽:870
好礦雲伺服器 發布:2025-02-07 19:54:31 瀏覽:947
java電話簿 發布:2025-02-07 19:49:26 瀏覽:795
超級腳本製作 發布:2025-02-07 19:31:30 瀏覽:486
怎麼查看支付寶的賬號密碼 發布:2025-02-07 19:26:48 瀏覽:16
惠普伺服器查看ip指令 發布:2025-02-07 19:26:47 瀏覽:434
演算法設計模式 發布:2025-02-07 19:15:52 瀏覽:746
伺服器1u能連接幾台電腦 發布:2025-02-07 18:50:02 瀏覽:154
立人編譯 發布:2025-02-07 18:48:32 瀏覽:766
日產途達四驅的有哪些配置 發布:2025-02-07 18:42:02 瀏覽:832