java的調試工具
㈠ java有位元組碼級別的單步動態調試工具嗎
作者:RednaxelaFX
鏈接:https://www.hu.com/question/36051329/answer/65735192
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
例如這個?Bytecode Visualizer不過題主想要的功能多半還得在上面這個工具的基礎之上再擴展一下。我自己做位元組碼層面調試的時候通常就直接用JDK自帶的jdb命令行調試器,支持位元組碼層面調試,不過用起來當然沒有帶GUI的工具那麼直觀咯。之前寫的一篇博文里有用jdb舉過例子:借HSDB來探索HotSpot VM的運行時數據。雖然那篇沒有提到,但其實用 stepi 和 nexti 命令就可以在jdb里做位元組碼層面的單步調試(普通的基於代碼行的單步調試命令則是 step 和 next,少個i後綴)。jdb的位元組碼層面調試最讓人不爽的一點就是它不能在任意位元組碼指令上設斷點。我以前用jdb都是只能設方法入口斷點然後不斷的 stepi 單步走到我要的指令上。這對稍微復雜一點的調試工作來說就極其紗布。jdb間接基於JVMTI實現,而JVMTI的SetBreakpoint函數其實是可以在任意位元組碼指令上設斷點的,只要GetJLocationFormat返回1(JVMTI_JLOCATION_JVMBCI)。jdb直接基於的是JVMTI之上的Java層包裝,JDI。它的本體入口在這里:jdk7u/jdk7u/jdk: e228aaace9c9 src/share/classes/com/sun/tools/example/debug/tty/TTY.java而斷點相關的部分在這里:jdk7u/jdk7u/jdk: e228aaace9c9 src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java鼓搗鼓搗這里就能讓它支持位元組碼指令層面(BCI,bytecode index)的斷點…
㈡ 如何編寫屬於自己的java / scala的調試器
JDWP協議
JDWP(Java Debugger Wire Protocol)是用來在調試和被調試程序之間通過二進制信息來傳遞請求和接收事件的(例如:線程中的狀態或者異常的變化),這些活動通常是網路上進行。這個架構背後的理念是在兩個程序之間盡可能的解耦。旨在減少由編譯器更改目標代碼在運行期的執行所帶來的海森堡效應(Werner是位德國物理學家,不是你喜歡的那個廚師Werner)。
從目標程序中移除多數調試邏輯操作,對檢測被調試的虛擬機中狀態的改變會有所幫助(例如:GC or OutOfMemoryErrors),這些邏輯是不會調試本身的。為了更加簡便,JDK自帶了JDI(java調試介面),該介面提供了全面的調試的協議實現,以及對一個目標虛擬機狀態的完備的操作能力,包括:連接、斷開、指導、處理。
Eclipse的編譯器使用的就是JDWP協議,IDE( Integrated Development Environment )調試JAVA程序時,如果查看當時傳遞給該程序的命令行參數,你會發現Eclipse會傳遞額外的參數(-agentlib:jdwp=transport=dt_socket,…)給程序來啟動java虛擬機調試,同時也將確定發送請求和事件的埠。
JVMTI編程介面
一系列的原生API是現代JVM中的第二個關鍵組件,這些API涵蓋了廣泛關於JVM操作的領域,其中為人所熟知的是 JVM Tooling Interface (i.e. JVMTI)。與JDWP不同的是,JVMTI設計時提供了一系列C/C++ 版的API和一種為JVM動態地載入預編譯的庫文件(如:.ll等)的機制,而這些庫文件會使用由API提供的命令。
JVMTI的使用方式不同於JDWP,實際上,它是在目標程序內執行編譯器。這種方式使調試器同時在性能和穩定性方面改善程序代碼更加得心應手。然而,最關鍵的優勢是這樣一種能夠幾乎是實時直接地和JVM交互的能力。
從JVMTI提供了一系列功能強、易入門的API中可以看出,JVMTI樂於去深入探究並分析自身的工作原理以及同通過用該些API所能完成的功能。可以從JDK自帶的JVMTI中獲取API標頭。
編寫調試器類庫
編寫自己的調試器需要用C++創建本地的操作系統類庫。主方法應該如下:
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm,char*options,void*)
當JVM載入調試代理器的同時,它會調用該方法。傳遞的Java虛擬機指針是至關重要的,它會提供所有需要跟JVM打交道的砝碼。該指針可以從java虛擬機中引入jvmtiEnv類;可以使用GetEnv方法利用capabilities (特性)和events(事件)的概念與JVMTI層進行交互。
JVMTI 特性
編寫調試器時,最關鍵的一方面是對在目標程序中的調試器代碼的功能有清晰的認識,特別是運行代碼的本地調試器類庫和運行程序聯系緊密時。為了更好的控制你的調試器去影響代碼的執行,因此JVMTI詳解中引入了capabilities(特性)的概念。
當編寫自己的編譯器時,可以事先通知java虛擬機你一系列打算使用的API命令或者事件(例如:設置斷點、中斷線程)。這能夠使JVM可以預先為這些命令或者事件做好准備,同時,你更好的掌控調試器運行期的開銷。這種方式也使得出自不同製造商的JVM能夠以程序設計的方式告訴你那些API的命令可以在整個JVMTI詳解中得以支持。
特性的性能是大不相同的。有些特性使用的性能開銷較低,但是有些較有意思的特性則是相反,例如:在代碼中拋出異常來接收回調的特性—can_generate_exception_events或者是需要加鎖來接收回調的特性—can_generate_monitor_events。原因在於這些特性會在 JIT全范圍的編譯時阻礙JVM優化代碼,與此同時,迫使JVM在運行期降到解釋模式。
其它一些特性,如:每當設定一個目標對象域時,用來接收通知的特性—can_generate_field_modification_events,會產生更大的開銷,導致代碼運行極慢。盡管JVM支持同時載入多個本地類庫,遺憾是一些 HotSpot的特性,如:用來掛起和喚醒線程的特性—can_suspend,只能每次地被一個類庫調用。
當搭建Takipi』s proction debugger時,需攻堅的問題之一是提供類似的特性且不能引起大的開銷(在之後的版本中更是這樣)。
設置回調。一旦接收到一系列的特性後,隨即設置好會被JVM調用的回調,這會讓你知道實際發生過的操作。每個回調都將會完全地提供關於已經發生過的事件的深層次信息。舉個例子,一則異常回調信息會包括拋出異常的位元組碼位置、線程、異常對象、異常是否將被捕獲以及將被捕獲的位置。
voidJNICALL ExceptionCallback(jvmtiEnv *jvmti,JNIEnv *jni, jthread thread, jmethodID method,
jlocation location, jobject exception,jmethodID catch_method, jlocation catch_location)
值得注意的是特性的開銷通常分為兩個部分,第一部分開銷來自驅動它工作,因為它需要使JIT編譯器不同地編譯事務,從而能夠訪問代碼。另外一部分來自當啟用一個回調功能時,此時這會引起JVM在執行期選擇低性能的執行路徑,通過這些路徑,特性可以訪問代碼,期間壓縮和傳遞重要數據會產生額外的開銷
斷點和檢查。編譯器能夠提供熟知的用來檢查在運行期所處的特定狀態的特性,如:SetBreakpoint,通知JVM通過某個具體的位元組碼來中斷執行,或者每當某個區域更改時,通過設置SetFieldModificationWatch中斷執行。針對這點,可以使用其它一些補充性的功能,例如:GetStackTrace 和GetThreadInfo ,用來知曉當前所在代碼中的位置並報告當前位置。
大多數JVMTI 的功能都涉及到一些使用抽象處理的類和方法,較為熟知的是jmethodID 和 jclass(如果你曾經編寫過java本地介面代碼,這是)。其中也提供了額外的一些功能,如:GetMethodName 和 GetClassSignature,來幫助從類常量池中獲取實際的符號名。之後,就可以使用這些符號名以可讀的方式記錄為日誌文件或者以界面的方式展示它們,就如同日常在IDE中所見的一樣。
連接調試器
一旦已經開始編寫調試器類庫,下一步任務就是將它連接到JVM上,下面是幾種連接的方式:
1. 連接JDWP。倘若你編寫的是一個以JDWP為基礎的調試器,需要向被調試對象增加一個啟動參數,就可以在線上進行調試,該參數的形式如下:agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:<port>。這些參數詳細反映了調試器和目標程序之間傳遞信息的方式,以及在掛起模式中是否啟用被調試對象。
2. 連接JVMTI 類庫.通過傳遞給被調試程序的代理路徑命令行,同時指向類庫所在硬碟上的位置,此時,JVM將會載入JVMTI類庫。
另外一種可行的方式是:將命令行參數追加到全局環境變數JAVA_TOOL_OPTIONS 後面,每個新的JVM會接收該變數,並且該變數的值會自動地追加到現存參數列表之後。
3. 遠程連接.還有一種通過使用遠程連接API來連接調試器的方式,使用這個簡單而功能強大的API能夠在沒有使用任何命令行參數來開始程序的情況下連接代理器來運行JVM程序。這個的不足在於你不能獲取通常本可以獲得的特性,如:can_generate_exception_events,因為這些特性只能在虛擬機啟動時獲取。
㈢ 如何用MyEclipse 調試Java程序代碼
在Eclipse中使用調試程序最基本的操作是:
1.首先在一個java文件中設斷點,然後debug as--open debug Dialog,然後在對話框中選類後-- Run
當程序走到斷點處就會轉到debug視圖下。
2.F5鍵與F6鍵均為單步調試,F5是step into,也就是進入本行代碼中執行,F6是step over,
也就是執行本行代碼,跳到下一行,
3.F7是跳出函數
4.F8是執行到最後。
1.Step Into (also F5) 跳入
2.Step Over (also F6) 跳過
3.Step Return (also F7) 執行完當前method,然後return跳出此method
4.step Filter 逐步過濾 一直執行直到遇到未經過濾的位置或斷點(設置Filter:window-preferences-java-Debug-step Filtering)
5.resume 重新開始執行debug,一直運行直到遇到breakpoint
6.hit count 設置執行次數 適合程序中的for循環(設置 breakpoint view-右鍵hit count)
7.inspect 檢查 運算。執行一個表達式顯示執行值
8.watch 實時地監視變數的變化
9.我們常說的斷點(breakpoints)是指line breakpoints,除了line breakpoints,還有其他的斷點類型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint.
10.field breakpoint 也叫watchpoint(監視點) 當成員變數被讀取或修改時暫掛
11.添加method breakpoint 進入/離開此方法時暫掛(Run-method breakpoint)
12.添加Exception breakpoint 捕抓到Execption時暫掛(待續...)
斷點屬性:
1.hit count 執行多少次數後暫掛 用於循環
2.enable condition 遇到符合你輸入條件(為ture\改變時)就暫掛
3.suspend thread 多線程時暫掛此線程
4.suspend VM 暫掛虛擬機
13.variables 視圖里的變數可以改變變數值,在variables 視圖選擇變數點擊右鍵--change value.一次來進行快速調試。
14.debug 過程中修改了某些code後--〉save&build--resume--重新暫掛於斷點?JSP的調試:1.將tomcat以debug的模式啟動。(java web servers)
2.選擇要調試的jsp,open with jsp editor
3.選擇jsp文件,debug。出現ajax插件,直接點就行了
㈣ Java到底用哪個軟體調試運行程序 求解
java開發IDE有以下幾種:MyEclipse、Eclipse、NetBeans等等,前兩種比最後一種流行,都可以用於編寫、調試和運行java。我用的是MyEclipse。望給分。。。
㈤ java中JDK調試器命令是
1、首先在電腦中滑鼠右擊「我的電腦」,點擊「屬性」,如下圖所示。
㈥ 下列哪個選項是Java調試器,如果編譯器返回程序代碼的錯誤,可以用它對程序進行調試( )
調試器--jdb.exe(轉)
Java調度器為Java程序提供了一個命令行調試環境。它既可在本地,也可在與遠程的解釋器的一次對話中執行。
jdb於本地機器中可用如下的命令啟動:
C:>jdb classname
當你使用-debug選項開始一個Java常式時, 必須提供給Jdb 一個密碼, 這樣 Jdb才能開始運轉起來。下表包含了所有jdb命令。
選項 功能
catch calssID 為特定異常出口而中斷
classes 列出當前已知的類
clear classID:line 清除一個斷點
cont 從斷點處繼續執行
down[n frames] 下移一個線程的堆棧
mp ID[ID...] 顯示所有對象信息
exit(或quit) 退出調試器
help(或?) 列出所有命令
ignore classID 忽略特定的異常出口
list[line number] 顯示源代碼
load classbame 載入要調試的Java類
locals 在當前堆棧幀中顯示所有局部變數
memory 報告內存使用情況
methods classID 列出一個類的成員函數集
print ID[ID...] 列出對象或域
resume [threadID...] 恢復線程(默認情況恢復所有線程)
run class [args] 開始執行已下載的Java類
step 執行當前行
stop in classID:method 在一成員函數中設一斷點
stop at classID:line 在一行設一斷點
suspend[threadID...] 停止一個線程(默認情況停止所有線程)
hreads threadgroup 列出線程
thread threadID 設置當前線程
threadgroups 列出線程組
threadgroup name 設置當前線程組
up [n frames] 上移一個線程堆棧
use [path] 顯示或改變源程序路徑
where [threadID] or all 使一線程的堆線置空
!! 重復上一次命令
-host hostname 該命令告訴Jdb到哪裡去建立遠程運行的Java解釋器對話過程
-password password 本選項告訴Jdb 用哪個密碼去與遠程運行的Java 對話進程相連接。 密碼 password是由運行帶有-debug選項的Java解釋器所提供的。
㈦ java調試
第一問:
publicclassPoint
{
intx,y;
floata,b;
staticintz;
voidsetValue(intm,intn)
{
this.x=m;
this.y=n;
}
voidsetValue(floata,floatb)
{
this.a=a;
this.b=b;
}
staticvoidoutput()
{
Pointpoint=newPoint();
System.out.println("x="+point.x+",y="+point.y+",a="+point.a+",b="+point.b+",z="+Point.z);
}
}
第二問:
publicPoint()
{
super();
}
publicPoint(intz1,intz2,floatz3,floatz4)
{
this.x=z1;
this.y=z2;
this.a=z3;
this.b=z4;
}
第三問:
publicstaticvoidmain(String[]args)
{
Pointpt1=newPoint();
pt1.setValue(1,2);
pt1.setValue(3,4);
Pointpt2=newPoint();
pt2.setValue(5,6);
pt2.setValue(7,8);
}
第四問:
Pointpt3=newPoint(9,10,11,12);
第五問:
System.out.println("x="+pt1.x+",y="+pt1.y+",a="+pt1.a+",b="+pt1.b);
System.out.println("x="+pt2.x+",y="+pt2.y+",a="+pt2.a+",b="+pt2.b);
第六問:
System.out.println("pt1.z="+pt1.z);
System.out.println("pt2.z="+pt2.z);
System.out.println("pt3.z="+pt3.z);
pt1.output();
pt2.output();
pt3.output();
System.out.println("Point.z="+Point.z);
Point.output();
output();
希望可以幫到你。
㈧ java程序調試的5種方法
1.debug。斷點調試。
2.輸出消息。system.out.println();來調試。
3.動態代理(Dynamic
Proxy)。動態代理是一個特定的Java特性,它允許開發者引入proxy類,加進某一給定類之前,並通過某一給定介面截獲所有調用。你可以在很短時間內用一個普通代理設置一個虛擬事件處理器,來查看事件發生順序。當需要理解事件處理器時這是最簡單和快捷的方法。
4.運行時剖析器(Run-time
Profiler)。剖析器是通過特定的JVM
hooks在系統中跟蹤所有調用的強大工具。但是用它來跟蹤執行過程是大才小用。
5.Aspects。面向方面編程。它是截獲你的代碼執行既快速又容易的方法。你可以圍繞方法、構造器、屬性訪問等等有選擇地設置hook,而不需要修改原始代碼。在這些hook中,你可以列印調試消息。
1.2常用的。3.4.5網上找的。
㈨ 學Java用什麼軟體調試
現在普遍用的是eclipse
下載地址:http://www.zeae.cn/
㈩ 免費java開發工具有哪些實用型java開發工具特點
使用開發工具之前,需要知道免費java開發工具有哪些?實用型java開發工具特點,我們以熟知這些軟體的優點和缺點為前提,以便在後期實操過程中根據實際情況選擇應用最適合的的java開發工具。
免費java開發工具有哪些?實用型java開發工具特點?
java開發工具一、Java Workshop
Sun MicroSystems公司於推出了Java WorkShop 1.0,這是業界出現的第一個供Internet網使用的多平台開發工具,它可以滿足各公司開發Internet和Intranet網應用軟體的需要。Java WorkShop完全用Java語言編寫,是當今市場上銷售的第一個完全的Java開發環境,目前Java WorkShop的最性版本是3.0。Java Workshop的特點表現如下:
1)結構易於創建:在創建平台中立的網格結構方面,Java Workshop比其他任何一種Java開發工具都要方便。
2)可視化編程:Java Workshop的可視化編程特性是很基本的。Java Workshop允許程序員重新安排這些操作,甚至可以確定觸發操作行為的過濾器。Java Workshop產生的模板帶有許多注釋,這對程序員是很有幫助的。
此外,Java WorkShop支持JDK以及JavaBeans組件模型,API和語言特徵增加了編譯Java應用程序的靈活性。 Java WorkShop開發環境由於完全用Java寫成,所以可移植性極好,以致於多個平台都能支持,目前Java WorkShop支持Solaris操作環境SPARC及Intel 版)、Windows95、WindowsNT、以及HP/Ux等平台。適合於初學者進行一些簡單的Java編程。Java WorkShop的缺點是Java Workshop中的每一個可視化對象都遲早會用到網格布局,這種設計方法是許多人不習慣的;Java Workdshop的調色板是較差的,僅僅能滿足絕大部分應用的基本要求。
java開發工具二、Borland 的JBuilder
Jbuilder進入了Java集成開發環境的王國,它滿足很多方面的應用,尤其是對於伺服器方以及EJB開發者們來說。下面簡單介紹一下Jbuilder的特點:
1)Jbuilder支持最新的Java技術,包括Applets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的應用。
2)用戶可以自動地生成基於後端資料庫表的EJB Java類,Jbuilder同時還簡化了EJB的自動部署功能.此外它還支持CORBA,相應的向導程序有助於用戶全面地管理IDL(分布應用程序所必需的介面定義語言Interface Definition Language)和控制遠程對象。
3)Jbuilder支持各種應用伺服器。Jbuilder與Inprise Application Server緊密集成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速開發J2EE的電子商務應用。
4)Jbuilder能用Servlet和JSP開發和調試動態Web 應用。
5)利用Jbuilder可創建(沒有專有代碼和標記)純Java2應用。由於Jbuilder是用純Java語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標准。
6)Jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持各種JDK版本,包括J2ME/J2SE/J2EE。
JBuilder環境開發程序方便,它是純的Java 開發環境,適合企業的J2EE開發;缺點是往往一開始人們難於把握整個程序各部分之間的關系,對機器的硬體要求較高,比較吃內存,這時運行速度顯得較慢。
java開發工具三、IBM的Visual Age for Java
Visual Age for Java是一個非常成熟的開發工具,它的特性以於IT開發者和業余的Java編程人員來說都是非常用有用的。它提供對可視化編程的廣泛支持,支持利用CICS連接遺傳大型機應用,支持EJB的開發應用,支持與Websphere的集成開發,方便的bean創建和良好的快速應用開發(RAD)支持和無文件式的文件處理。
IBM為建設Web站點所推出的WebSphere Studio Advanced Edition及其包含的VisualAge for Java Professional Edition軟體已全面轉向以Java為中心,這樣,Java開發人員對WebSphere全套工具的感覺或許會好了許多。Studio所提供的工具有:Web站點管理、快速開發 JDBC頁向導程序、HTML編輯器和HTML語法檢查等。這確實是個不錯的HTML站點頁面編輯環境。Studio和VisualAge集成度很高,菜單中提供了在兩種軟體包之間快速移動代碼的選項。這就讓使用Studio的Web頁面設計人員和使用VisualAge的Java程序員可以相互交換文件、協同工作。
Visual Age for Java支持團隊開發,內置的代碼庫可以自動地根據用戶做出改動而修改程序代碼,這樣就可以很方便地將目前代碼和早期版本做出比較。與Visual Age緊密結合的Websphere Studio本身並不提供源代碼和版本管理的支持,它只是包含了一個內置文件鎖定系統,當編輯項目的時候可以防止其他人對這些文件的錯誤修改,軟體還支持諸如Microsoft Visual SourceSafe這樣的第三方源代碼控制系統。Visual Age for Java完全面向對象的程序設計思想使得開發程序非常快速、高效。你可以不編寫任何代碼就可以設計出一個典型的應用程序框架。Visual Age for Java作為IBM電子商務解決方案其中產品之一,可以無縫地與其他IBM產品,如WebSphere、DB2融合, 迅速完成從設計、開發到部署應用的整個過程。
Visual Age for Java獨特的管理文件方式使其集成外部工具非常困難,你無法讓Visual Age for Java與其他工具一起聯合開發應用。
java開發工具四、WebGain 的Visu模板管理
是只能在Symantec公司的Java虛擬機、Netscape公司的Java虛擬機和Microsoft虛擬機上工作的調試器。這對於開發者來講是一個重要的特性,因為用戶開發的Java代碼中的許多軟體bug就可能中會在某種特定的虛擬機上起作用。
在修改後進行編譯基繼續進行調試時,Visual Cafe會自動將文件存檔,使用Visual Cafe創建的原生應用具有許多特點。除了明顯的速度提高之外,Symantec使類庫的二進制方式比正常的JDK小Visual Cafe為所指定的關系自動生成或更新必要的Java代碼。利用Visual Cafe,用戶可以從一個標准對象資料庫中集合完整的Java應用程序和Applet,而不必再編寫源代碼。Visual Cafe還提供了一個擴充的源代碼開發工具集。
Visual Cafe綜合了Java軟體的可視化源程序開發工具,它允許開發人員在可視化視圖和源視圖之間進行有效地轉換。在可視化視圖中進行的修改立即反映在源代碼中。對源代碼的改變自動更新可視化視圖。
Visual Cafe具有許多源文件方面的特性,如全局檢索和替換。絕大多數Java開發工具的文獻的問題在於簡單地挨個介紹開發工具的每部分組件,但用戶在開應用時還需要一個面向任務的手冊,利用這個手冊你可以不必知道工具每一部分的特定功能就可以開始創建自己的應用。Visual Cafe提供了非常全面的用戶指南,它對最開始的安裝到創建第一個Java應用和Applet都提供了全面的幫助,Visual Cafe將自動生成所指明關系的必要Java代碼。Visual Cafe可以在Windows 95和Windows NT平台下運行,Symantec公司為Java開發工作提供一個在Macintosh操作系統下可以運行的RAD工具。Visual Cafe編譯器速度很快,在國際化支持方面比較突出;缺點就是對於初學者來說,較復雜,也比較難。
java開發工具五、Ant
Another Neat Tool(Ant)是一種基於Java的build工具。理論上來說,它有些類似於(Unix)C中的make ,但沒有make的缺陷。因為Ant的原作者在多種(硬體)平台上開發軟體時,無法忍受這些工具的限制和不便。類似於make的工具本質上是基於shell(語言)的:他們計算依賴關系,然後執行命令(這些命令與你在命令行敲的命令沒太大區別)。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴展該工具;然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix。Ant就不同了。與基於shell命令的擴展模式不同,Ant用Java的類來擴展。(用戶)不必編寫shell命令,配置文件是基於XML的,通過調用target樹,就可執行各種task。每個task由實現了一個實現了特定Task介面的對象來運行。
Ant支持一些可選task,一個可選task一般需要額外的庫才能工作。可選task與Ant的內置task分開,單獨打包。這個可選包可以從你下載Ant的同一個地方下載。ANT本身就是這樣一個流程腳本引擎,用於自動化調用程序完成項目的編譯,打包,測試等。除了基於JAVA是平台無關的外,腳本的格式是基於XML的,比make腳本來說還要好維護一些。Ant是Apache提供給Java開發人員的構建工具,它可以在Windows OS和Unix OS下運行,它不僅開放源碼並且還是一個非常好用的工具。Ant是Apache Jakarta中一個很好用的Java開發工具,Ant配置文件採用XML文檔編寫,所以Java程序員對其語法相當熟悉,Ant是專用於Java項目平台,能夠用純Java來開發,它能夠運行於Java安裝的平台,即體現了它的跨平台功能。它的缺點顯示執行結果只能是DOS字元界面,不能進行復雜的java程序開發。
免費java開發工具有哪些?實用型java開發工具有Java Workshop、Borland 的JBuilder 、IBM的Visual Age for Java 、Visual Cafe for Java 、Ant等,除此之外還要很多其他的開發工具。
感謝大家閱讀由java問答分享的「免費java開發工具有哪些?實用型java開發工具特點?」希望對大家有所幫助,了解更多專業課程培訓內容請關注昆明北大青鳥java培訓機構官網。
免責聲明:以上內容僅作為信息傳播,文中部分信息來源於互聯網,僅供閱讀參考。