判斷圖片文件的寬度和高度:
創(chuàng)新互聯(lián)建站主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)祁連,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
InputStream is = new FileInputStream(filename);//通過文件名稱讀取或InputStream is =new ByteArrayInputStream(byte[] a);//通過文件的字節(jié)數(shù)組讀取。
BufferedImage buff = ImageIO.read(is);
buff.getWidth(); //得到圖片的寬度
buff.getHeight();?0?2 //得到圖片的高度
is.close(); //關(guān)閉Stream
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個特征。
Java具有簡單性、面向?qū)ο蟆⒎植际?、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
Java看起來設(shè)計得很像C++,但是為了使語言小和容易熟悉,設(shè)計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。
jvav倒不知道
java是一種面向?qū)ο蟮某绦蛘Z言。
Java是一個廣泛使用的網(wǎng)絡(luò)編程語言 ,它是一種新的計算概念。
首先 ,作為一種程序設(shè)計語言 ,它簡單、面向?qū)ο?、不依賴于機(jī)器的結(jié)構(gòu)、具有可移植性、魯棒性、安全性、并且提供了并發(fā)的機(jī)制、具有很高的性能。其次 ,它最大限度地利用了網(wǎng)絡(luò) ,Java的小應(yīng)用程序 (applet)可在網(wǎng)絡(luò)上傳輸而不受 CPU和環(huán)境的限制。另外 ,Java還提供了豐富的類庫 ,使程序設(shè)計者可以很方便地建立自己的系統(tǒng)。
下面我們分別從這三個方面來討論 Java的特點 ,然后通過把 Java與 C,C++相比進(jìn)一步指出它所具有的優(yōu)點。
一、 Java語言
Java語言有下面一些特點 :簡單、面向?qū)ο蟆⒎植际?、解釋?zhí)行、魯棒、安全、體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動態(tài)性。
1.簡單性
Java語言是一種面向?qū)ο蟮恼Z言 ,它通過提供最基本的方法來完成指定的任務(wù) ,只需理解一些基本的概念 ,就可以用它編寫出適合于各種情況的應(yīng)用程序。 Java略去了運算符重載、多重繼承等模糊的概念 ,并且通過實現(xiàn)自動垃圾收集大大簡化了程序設(shè)計者的內(nèi)存管理工作。另外 ,Java也適合于在小型機(jī)上運行 ,它的基本解釋器及類的支持只有 40KB左右 ,加上標(biāo)準(zhǔn)類庫和線程的支持也只有 215KB左右。庫和線程的支持也只有 215KB左右。
2.面向?qū)ο?/p>
Java語言的設(shè)計集中于對象及其接口 ,它提供了簡單的類機(jī)制以及動態(tài)的接口模型。對象中封裝了它的狀態(tài)變量以及相應(yīng)的方法 ,實現(xiàn)了模塊化和信息隱藏 ;而類則提供了一類對象的原型 ,并且通過繼承機(jī)制 ,子類可以使用父類所提供的方法 ,實現(xiàn)了代碼的復(fù)用。
3.分布性
Java是面向網(wǎng)絡(luò)的語言。通過它提供的類庫可以處理 TCP/IP協(xié)議 ,用戶 可以通過 URL地址在網(wǎng)絡(luò)上很方便地訪問其它對象。
4.穩(wěn)定性
Java在編譯和運行程序時 ,都要對可能出現(xiàn)的問題進(jìn)行檢查 ,以消除錯誤的產(chǎn)生。它提供自動垃圾收集來進(jìn)行內(nèi)存管理 ,防止程序員在管理內(nèi)存時容易產(chǎn)生的錯誤。通過集成的面向?qū)ο蟮睦馓幚頇C(jī)制 ,在編譯時,Java提示出可能出現(xiàn)但未被處理的例外 ,幫助程序員正確地進(jìn)行選擇以防止系統(tǒng)的崩潰。另外,Java在編譯時還可捕獲類型聲明中的許多常見錯誤 ,防止動態(tài)運行時不匹配問題的出現(xiàn)。
5.安全性
用于網(wǎng)絡(luò)、分布環(huán)境下的 Java必須要防止病毒的入侵。 Java不支持指針,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn) ,這樣就防止程序員使用"特洛伊 "木馬等欺騙手段訪問對象的私有成員 ,同時也避免了指針操作中容易產(chǎn)生的錯誤。
6.體系結(jié)構(gòu)中立
Java解釋器生成與體系結(jié)構(gòu)無關(guān)的字節(jié)碼指令 ,只要安裝了 Java運行時系統(tǒng) ,Java程序就可在任意的處理器上運行。這些字節(jié)碼指令對應(yīng)于 Java虛擬機(jī)中的表示 ,Java解釋器得到字節(jié)碼后 ,對它進(jìn)行轉(zhuǎn)換 ,使之能夠在不同的平臺運行。
7.可移植性
與平臺無關(guān)的特性使 Java程序可以方便地被移植到網(wǎng)絡(luò)上的不同機(jī)器。同時 ,Java的類庫中也實現(xiàn)了與不同平臺的接口 ,使這些類庫可以移植。另外,Java編譯器是由 Java語言實現(xiàn)的 ,Java運行時系統(tǒng)由標(biāo)準(zhǔn) C實現(xiàn) ,這使得Java系統(tǒng)本身也具有可移植性。
8.解釋執(zhí)行
Java解釋器直接對 Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時信息 ,使得連接過程更加簡單。
9.高性能
和其它解釋執(zhí)行的語言如 BASIC、 TCL不同 ,Java字節(jié)碼的設(shè)計使之能很容易地直接轉(zhuǎn)換成對應(yīng)于特定CPU的機(jī)器碼 ,從而得到較高的性能。
10.多線程
多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行 ,而且同步機(jī)制保證了對共享數(shù)據(jù)的正確操作。通過使用多線程 ,程序設(shè)計者可以分別用不同的線程完成特定的行為 ,而不需要采用全局的事件循環(huán)機(jī)制 ,這樣就很容易地實現(xiàn)網(wǎng)絡(luò)上的實時交互行為。
11.動態(tài)性
Java的設(shè)計使它適合于一個不斷發(fā)展的環(huán)境。在類庫中可以自由地加入新的方法和實例變量而不會影響用戶程序的執(zhí)行。并且 Java通過接口來支持多重繼承 ,使之比嚴(yán)格的類繼承具有更靈活的方式和擴(kuò)展性。
二、 Java Applet
Java語言的特性使它可以最大限度地利用網(wǎng)絡(luò)。 Applet是 Java的小應(yīng)用程序 ,它是動態(tài)、安全、跨平臺的網(wǎng)絡(luò)應(yīng)用程序。 Java Applet嵌入 HTML語言 ,通過主頁發(fā)布到 Internet。網(wǎng)絡(luò)用戶訪問服務(wù)器的 Applet時 ,這些Applet從網(wǎng)絡(luò)上進(jìn)行傳輸 ,然后在支持 Java的瀏覽器中運行。由于 Java語言的安全機(jī)制 ,用戶一旦載入 Applet,就可以放心地來生成多媒體的用戶界面或完成復(fù)雜的計算而不必?fù)?dān)心病毒的入侵。雖然 Applet可以和圖像、聲音、動畫等一樣從網(wǎng)絡(luò)上下載 ,但它并不同于這些多媒體的文件格式 ,它可以接收用戶的輸入 ,動態(tài)地進(jìn)行改變,而不僅僅是動畫的顯示和聲音的播放。
三、豐富的類庫
Java提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο笙到y(tǒng)的需要。
1.語言包提供的支持包括字符串處理、多線程處理、例外處理、數(shù)學(xué)函數(shù)處理等 ,可以用它簡單地實現(xiàn)Java程序的運行平臺。
2.實用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時間和日期等。
3.輸入輸出包用統(tǒng)一的 "流 "模型來實現(xiàn)所有格式的 I/O,包括文件系統(tǒng)、網(wǎng)絡(luò)、輸入。
4.低級網(wǎng)絡(luò)包用于實現(xiàn) Socket編程。
5.抽象圖形用戶接口包實現(xiàn)了不同平臺的計算機(jī)的圖形用戶接口部件, 包括窗口、菜單、滾動條、對話框等 ,使得 Java可以移植到不同平臺的機(jī)器。
6.網(wǎng)絡(luò)包支持 Internet的 TCP/IP協(xié)議 ,提供了與 Internet的接口。它支持 URL連接 ,WWW的即時訪問 ,并且簡化了用戶/服務(wù)器模型的程序設(shè)計。
四、 Java和 C、 C++
對于變量聲明、參數(shù)傳遞、操作符、流控制等 ,Java使用了和 C、 C++相同的傳統(tǒng) ,使得熟悉 C、 C++的程序員能很方便地進(jìn)行編程。同時,Java為了實現(xiàn)其簡單、魯棒、安全等特性 ,也摒棄了 C和 C++中許多不合理的內(nèi)容。
1.全局變量
Java程序中 ,不能在所有類之外定義全局變量 ,只能通過在一個類中定義公用、靜態(tài)的變量來實現(xiàn)一個全局變量。例如 :
Class GlobalVar{
public static global_var;
}
在類 GlobalVar中定義變量 global_var為 public static,使得其它類可以訪問和修改該變量。
Java對全局變量進(jìn)行了更好的封裝。而在 C和 C++中 ,依賴于不加封裝的全局變量常常造成系統(tǒng)的崩潰。
2.Goto
Java不支持 C、 C++中的 goto語句 ,而是通過例外處理語句 try, Catch,final等來代替 C、 C++中用 goto來處理遇到錯誤時跳轉(zhuǎn)的情況 ,使程序更可讀且更結(jié)構(gòu)化。
3.指針
指針是 C、 C++中最靈活 ,也是最容易產(chǎn)生錯誤的數(shù)據(jù)類型。由指針?biāo)M(jìn)行的內(nèi)存地址操作常會造成不可預(yù)知的錯誤 ,同時通過指針對某個內(nèi)存地址進(jìn)行顯式類型轉(zhuǎn)換后 ,可以訪問一個 C++中的私有成員 ,從而破壞安全性 ,造成系統(tǒng)的崩潰。而 Java對指針進(jìn)行完全的控制 ,程序員不能直接進(jìn)行任何指針操作 ,例如把整數(shù)轉(zhuǎn)化為指針 ,或者通過指針釋放某一內(nèi)存地址等。同時 ,數(shù)組作為類在Java中實現(xiàn) ,良好地解決了數(shù)組訪問越界這一C、 C++中不作檢查的錯誤。
4.內(nèi)存管理
在 C中 ,程序員通過庫函數(shù) malloc()和 free()來分配和釋放內(nèi)存 , C++中則通過運算符 new和 delete來分配和釋放內(nèi)存。再次釋放已釋放的內(nèi)存塊或未被分配的內(nèi)存塊 ,會造成系統(tǒng)的崩潰 ;同樣 ,忘記釋放不再使用的內(nèi)存塊也會逐漸耗盡系統(tǒng)資源。而在 Java中 ,所有的數(shù)據(jù)結(jié)構(gòu)都是對象 ,通過運算符new為它們分配內(nèi)存堆。通過new得到對象的處理權(quán) ,而實際分配給對象的內(nèi)存可能隨程序運行而改變 ,Java對此自動地進(jìn)行管理并且進(jìn)行垃圾收集 ,有效防止了由于程序員的誤操作而導(dǎo)致的錯誤 ,并且更好地利用了系統(tǒng)資源。
5.數(shù)據(jù)類型的支持
在 C、 C++中 ,對于不同的平臺 ,編譯器對于簡單數(shù)據(jù)類型如 int,float等分別分配不同長度的字節(jié)數(shù) ,例如:int在 IBM PC中為 16位 ,在 VAX-11中為 32位 ,這導(dǎo)致了代碼的不可移植性 ,但在 Java中 ,對于這些數(shù)據(jù)類型總是分配固定長度的位數(shù) ,如對 int型 ,它總占 32位 ,這就保證了 Java的平臺無關(guān)性。
6.類型轉(zhuǎn)換
在 C、C++中 ,可以通過指針進(jìn)行任意的類型轉(zhuǎn)換 ,常常帶來不安全性,而 Java中 ,運行時系統(tǒng)對對象的處理要進(jìn)行類型相容性檢查 ,以防止不安全的轉(zhuǎn)換。
7.頭文件
C、 C++中用頭文件來聲明類的原型以及全局變量、庫函數(shù)等 ,在大的系統(tǒng)中 ,維護(hù)這些頭文件是很困難的。而 Java不支持頭文件 ,類成員的類型和訪問權(quán)限都封裝在一個類中 ,運行時系統(tǒng)對訪問進(jìn)行控制 ,防止對私有成員的操作。同時 ,Java中用 import語句來與其它類進(jìn)行通訊 ,以便使用它們的方法。
8.結(jié)構(gòu)和聯(lián)合
C、 C++中的結(jié)構(gòu)和聯(lián)合中所有成員均為公有 ,這就帶來了安全性問題。Java中不包含結(jié)構(gòu)和聯(lián)合 ,所有的內(nèi)容都封裝在類中。
9.預(yù)處理
C、 C++中用宏定義來實現(xiàn)的代碼給程序的可讀性帶來了困難。在 Java中 ,不支持宏 ,它通過關(guān)鍵字 final來聲明一個常量 ,以實現(xiàn)宏定義中廣泛使用的常量定義。
java中的ImageIcon類在Serializable, Accessible, Icon包里。
作用:它根據(jù) Image 繪制 Icon??墒褂?MediaTracker 預(yù)載根據(jù) URL、文件名或字節(jié)數(shù)組創(chuàng)建的圖像,以監(jiān)視該圖像的加載狀態(tài)。
里面是相對于你創(chuàng)建的image類的,路徑是相對于image類文件的,所以要把圖片文件和image.classs類文件放在一起。
簡單性:
Java看起來設(shè)計得很像C++,但是為了使語言小和容易熟悉,設(shè)計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持goto語句,代之以提供break和continue語句以及異常處理。
Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。因為Java沒有結(jié)構(gòu),數(shù)組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發(fā)上。
Bazel:來自Google的構(gòu)建工具,可以快速、可靠地構(gòu)建代碼。官網(wǎng)
Gradle:使用Groovy(非XML)進(jìn)行增量構(gòu)建,可以很好地與Maven依賴管理配合工作。官網(wǎng)
Buck:Facebook構(gòu)建工具。官網(wǎng)
字節(jié)碼操作
編程方式操作字節(jié)碼的開發(fā)庫。
ASM:通用底層字節(jié)碼操作和分析開發(fā)庫。官網(wǎng)
Byte Buddy:使用流式API進(jìn)一步簡化字節(jié)碼生成。官網(wǎng)
Byteman:在運行時通過DSL(規(guī)則)操作字節(jié)碼進(jìn)行測試和故障排除。官網(wǎng)
Javassist:一個簡化字節(jié)碼編輯嘗試。官網(wǎng)
集群管理
在集群內(nèi)動態(tài)管理應(yīng)用程序的框架。
Apache Aurora:Apache Aurora是一個Mesos框架,用于長時間運行服務(wù)和定時任務(wù)(cron job)。官網(wǎng)
Singularity:Singularity是一個Mesos框架,方便部署和操作。它支持Web Service、后臺運行、調(diào)度作業(yè)和一次性任務(wù)。官網(wǎng)
代碼分析
測量代碼指標(biāo)和質(zhì)量工具。
Checkstyle:代碼編寫規(guī)范和標(biāo)準(zhǔn)靜態(tài)分析工具。官網(wǎng)
Error Prone:將常見編程錯誤作為運行時錯誤報告。官網(wǎng)
FindBugs:通過字節(jié)碼靜態(tài)分析查找隱藏bug。官網(wǎng)
jQAssistant:使用基于Neo4J查詢語言進(jìn)行代碼靜態(tài)分析。官網(wǎng)
PMD:對源代碼分析查找不良的編程習(xí)慣。官網(wǎng)
SonarQube:通過插件集成其它分析組件,對過去一段時間內(nèi)的數(shù)據(jù)進(jìn)行統(tǒng)計。官網(wǎng)
編譯器生成工具
用來創(chuàng)建解析器、解釋器或編譯器的框架。
ANTLR:復(fù)雜的全功能自頂向下解析框架。官網(wǎng)
JavaCC:JavaCC是更加專門的輕量級工具,易于上手且支持語法超前預(yù)測。官網(wǎng)
外部配置工具
支持外部配置的開發(fā)庫。
config:針對JVM語言的配置庫。官網(wǎng)
owner:減少冗余配置屬性。官網(wǎng)
約束滿足問題求解程序
幫助解決約束滿足問題的開發(fā)庫。
Choco:可直接使用的約束滿足問題求解程序,使用了約束規(guī)劃技術(shù)。官網(wǎng)
JaCoP:為FlatZinc語言提供了一個接口,可以執(zhí)行MiniZinc模型。官網(wǎng)
OptaPlanner:企業(yè)規(guī)劃與資源調(diào)度優(yōu)化求解程序。官網(wǎng)
Sat4J:邏輯代數(shù)與優(yōu)化問題最先進(jìn)的求解程序。官網(wǎng)
持續(xù)集成
Bamboo:Atlassian解決方案,可以很好地集成Atlassian的其他產(chǎn)品。可以選擇開源許可,也可以購買商業(yè)版。官網(wǎng)
CircleCI:提供托管服務(wù),可以免費試用。官網(wǎng)
Codeship:提供托管服務(wù),提供有限的免費模式。官網(wǎng)
fabric8:容器集成平臺。官網(wǎng)
Go:ThoughtWork開源解決方案。官網(wǎng)
Jenkins:支持基于服務(wù)器的部署服務(wù)。官網(wǎng)
TeamCity:JetBrain的持續(xù)集成解決方案,有免費版。官網(wǎng)
Travis:通常用作開源項目的托管服務(wù)。官網(wǎng)
Buildkite: 持續(xù)集成工具,用簡單的腳本就能設(shè)置pipeline,而且能快速構(gòu)建,可以免費試用。官網(wǎng)
CSV解析
簡化CSV數(shù)據(jù)讀寫的框架與開發(fā)庫
uniVocity-parsers:速度最快功能最全的CSV開發(fā)庫之一,同時支持TSV與固定寬度記錄的讀寫。官網(wǎng)
數(shù)據(jù)庫
簡化數(shù)據(jù)庫交互的相關(guān)工具。
Apache Phoenix:HBase針對低延時應(yīng)用程序的高性能關(guān)系數(shù)據(jù)庫層。官網(wǎng)
Crate:實現(xiàn)了數(shù)據(jù)同步、分片、縮放、復(fù)制的分布式數(shù)據(jù)存儲。除此之外還可以使用基于SQL的語法跨集群查詢。官網(wǎng)
Flyway:簡單的數(shù)據(jù)庫遷移工具。官網(wǎng)
H2:小型SQL數(shù)據(jù)庫,以可以作為內(nèi)存數(shù)據(jù)庫使用著稱。官網(wǎng)
HikariCP:高性能JDBC連接工具。官網(wǎng)
JDBI:便捷的JDBC抽象。官網(wǎng)
Protobuf:Google數(shù)據(jù)交換格式。官網(wǎng)
SBE:簡單二進(jìn)制編碼,是最快速的消息格式之一。官網(wǎng)
Wire:整潔輕量級協(xié)議緩存。官網(wǎng)
幫實現(xiàn)依賴翻轉(zhuǎn)范式的開發(fā)庫。?官網(wǎng)
Apache DeltaSpike:CDI擴(kuò)展框架。官網(wǎng)
Dagger2:編譯時注入框架,不需要使用反射。官網(wǎng)
Guice:可以匹敵Dagger的輕量級注入框架。官網(wǎng)
HK2:輕量級動態(tài)依賴注入框架。官網(wǎng)
開發(fā)流程增強(qiáng)工具
從最基本的層面增強(qiáng)開發(fā)流程。
ADT4J:針對代數(shù)數(shù)據(jù)類型的JSR-269代碼生成器。官網(wǎng)
AspectJ:面向切面編程(AOP)的無縫擴(kuò)展。官網(wǎng)
Auto:源代碼生成器集合。官網(wǎng)
DCEVM:通過修改JVM在運行時支持對已加載的類進(jìn)行無限次重定義。官網(wǎng)
HotswapAgent:支持無限次重定義運行時類與資源。官網(wǎng)
Immutables:類似Scala的條件類。官網(wǎng)
JHipster:基于Spring Boot與AngularJS應(yīng)用程序的Yeoman源代碼生成器。官網(wǎng)
JRebel:無需重新部署,可以即時重新加載代碼與配置的商業(yè)軟件。官網(wǎng)
Lombok:減少冗余的代碼生成器。官網(wǎng)
Spring Loaded:類重載代理。官網(wǎng)
vert.x:多語言事件驅(qū)動應(yīng)用框架。官網(wǎng)
分布式應(yīng)用
用來編寫分布式容錯應(yīng)用的開發(fā)庫和框架。
Akka:用來編寫分布式容錯并發(fā)事件驅(qū)動應(yīng)用程序的工具和運行時。官網(wǎng)
Apache Storm:實時計算系統(tǒng)。官網(wǎng)
Apache ZooKeeper:針對大型分布式系統(tǒng)的協(xié)調(diào)服務(wù),支持分布式配置、同步和名稱注冊。官網(wǎng)
Hazelcast:高可擴(kuò)展內(nèi)存數(shù)據(jù)網(wǎng)格。官網(wǎng)
Hystrix:提供延遲和容錯。官網(wǎng)
JGroups:提供可靠的消息傳遞和集群創(chuàng)建的工具。官網(wǎng)
Orbit:支持虛擬角色(Actor),在傳統(tǒng)角色的基礎(chǔ)上增加了另外一層抽象。官網(wǎng)
Quasar:為JVM提供輕量級線程和角色。官網(wǎng)
分布式數(shù)據(jù)庫
對應(yīng)用程序而言,在分布式系統(tǒng)中的數(shù)據(jù)庫看起來就像是只有一個數(shù)據(jù)源。
Apache Cassandra:列式數(shù)據(jù)庫,可用性高且沒有單點故障。官網(wǎng)
Apache HBase:針對大數(shù)據(jù)的Hadoop數(shù)據(jù)庫。官網(wǎng)
Druid:實時和歷史OLAP數(shù)據(jù)存儲,在聚集查詢和近似查詢方面表現(xiàn)不俗。官網(wǎng)
Infinispan:針對緩存的高并發(fā)鍵值對數(shù)據(jù)存儲。官網(wǎng)
發(fā)布
以本機(jī)格式發(fā)布應(yīng)用程序的工具。
Bintray:發(fā)布二進(jìn)制文件版本控制工具??梢杂贛aven或Gradle一起配合使用。提供開源免費版本和幾種商業(yè)收費版本。官網(wǎng)
Central Repository:最大的二進(jìn)制組件倉庫,面向開源社區(qū)提供免費服務(wù)。Apache Maven默認(rèn)使用Central?官網(wǎng)Repository,也可以在所有其他構(gòu)建工具中使用。
IzPack:為跨平臺部署建立創(chuàng)作工具(Authoring Tool)。官網(wǎng)
JitPack:打包GitHub倉庫的便捷工具??筛鶕?jù)需要構(gòu)建Maven、Gradle項目,發(fā)布可立即使用的組件。官網(wǎng)
Launch4j:將JAR包裝為輕量級本機(jī)Windows可執(zhí)行程序。官網(wǎng)
Nexus:支持代理和緩存功能的二進(jìn)制管理工具。官網(wǎng)
packr:將JAR、資源和JVM打包成Windows、Linux和Mac OS X本地發(fā)布文件。官網(wǎng)
文檔處理工具
處理Office文檔的開發(fā)庫。
Apache POI:支持OOXML規(guī)范(XLSX、DOCX、PPTX)以及OLE2規(guī)范(XLS、DOC、PPT)。官網(wǎng)
documents4j:使用第三方轉(zhuǎn)換器進(jìn)行文檔格式轉(zhuǎn)換,轉(zhuǎn)成類似MS Word這樣的格式。官網(wǎng)
jOpenDocument:處理OpenDocument格式(由Sun公司提出基于XML的文檔格式)。官網(wǎng)
函數(shù)式編程
函數(shù)式編程支持庫。
Cyclops:支持一元(Monad)操作和流操作工具類、comprehension(List語法)、模式匹配、trampoline等特性。官網(wǎng)
Fugue:Guava的函數(shù)式編程擴(kuò)展。官網(wǎng)
Functional Java:實現(xiàn)了多種基礎(chǔ)和高級編程抽象,用來輔助面向組合開發(fā)(composition-oriented development)。官網(wǎng)
Javaslang:一個函數(shù)式組件庫,提供持久化數(shù)據(jù)類型和函數(shù)式控制結(jié)構(gòu)。官網(wǎng)
jOOλ:旨在填補(bǔ)Java 8 lambda差距的擴(kuò)展,提供了眾多缺失的類型和一組豐富的順序流API。官網(wǎng)
游戲開發(fā)
游戲開發(fā)框架。
jMonkeyEngine:現(xiàn)代3D游戲開發(fā)引擎。官網(wǎng)
libGDX:全面的跨平臺高級框架。官網(wǎng)
LWJGL:對OpenGL/CL/AL等技術(shù)進(jìn)行抽象的健壯框架。官網(wǎng)
GUI
現(xiàn)代圖形化用戶界面開發(fā)庫。
JavaFX:Swing的后繼者。官網(wǎng)
Scene Builder:開發(fā)JavaFX應(yīng)用的可視化布局工具。官網(wǎng)
高性能計算
涵蓋了從集合到特定開發(fā)庫的高性能計算相關(guān)工具。
Agrona:高性能應(yīng)用中常見的數(shù)據(jù)結(jié)構(gòu)和工具方法。官網(wǎng)
Disruptor:線程間消息傳遞開發(fā)庫。官網(wǎng)
fastutil:快速緊湊的特定類型集合(Collection)。官網(wǎng)
GS Collections:受Smalltalk啟發(fā)的集合框架。官網(wǎng)
HPPC:基礎(chǔ)類型集合。官網(wǎng)
Javolution:實時和嵌入式系統(tǒng)的開發(fā)庫。官網(wǎng)
JCTools:JDK中缺失的并發(fā)工具。官網(wǎng)
Koloboke:Hash set和hash map。官網(wǎng)
Trove:基礎(chǔ)類型集合。官網(wǎng)
High-scale-bli:Cliff Click 個人開發(fā)的高性能并發(fā)庫官網(wǎng)
IDE
簡化開發(fā)的集成開發(fā)環(huán)境。
Eclipse:老牌開源項目,支持多種插件和編程語言。官網(wǎng)
IntelliJ IDEA:支持眾多JVM語言,是安卓開發(fā)者好的選擇。商業(yè)版主要針對企業(yè)客戶。官網(wǎng)
NetBeans:為多種技術(shù)提供集成化支持,包括Java SE、Java EE、數(shù)據(jù)庫訪問、HTML5
Imgscalr:純Java 2D實現(xiàn),簡單、高效、支持硬件加速的圖像縮放開發(fā)庫。官網(wǎng)
Picasso:安卓圖片下載和圖片緩存開發(fā)庫。官網(wǎng)
Thumbnailator:Thumbnailator是一個高質(zhì)量Java縮略圖開發(fā)庫。官網(wǎng)
ZXing:支持多種格式的一維、二維條形碼圖片處理開發(fā)庫。官網(wǎng)
im4java: 基于ImageMagick或GraphicsMagick命令行的圖片處理開發(fā)庫,基本上ImageMagick能夠支持的圖片格式和處理方式都能夠處理。官網(wǎng)
Apache Batik:在Java應(yīng)用中程序以SVG格式顯示、生成及處理圖像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模塊,可以集成使用也可以單獨使用,還可以擴(kuò)展自定義的SVG標(biāo)簽。官網(wǎng)
JSON
簡化JSON處理的開發(fā)庫。
Genson:強(qiáng)大且易于使用的Java到JSON轉(zhuǎn)換開發(fā)庫。官網(wǎng)
Gson:谷歌官方推出的JSON處理庫,支持在對象與JSON之間雙向序列化,性能良好且可以實時調(diào)用。官網(wǎng)
Jackson:與GSON類似,在頻繁使用時性能更佳。官網(wǎng)
LoganSquare:基于Jackson流式API,提供對JSON解析和序列化。比GSON與Jackson組合方式效果更好。官網(wǎng)
Fastjson:一個Java語言編寫的高性能功能完善的JSON庫。官網(wǎng)
Kyro:快速、高效、自動化的Java對象序列化和克隆庫。官網(wǎng)
JVM與JDK
目前的JVM和JDK實現(xiàn)。
JDK 9:JDK 9的早期訪問版本。官網(wǎng)
OpenJDK:JDK開源實現(xiàn)。官網(wǎng)
基于JVM的語言
除Java外,可以用來編寫JVM應(yīng)用程序的編程語言。
Scala:融合了面向?qū)ο蠛秃瘮?shù)式編程思想的靜態(tài)類型編程語言。官網(wǎng)
Groovy:類型可選(Optionally typed)的動態(tài)語言,支持靜態(tài)類型和靜態(tài)編譯。目前是一個Apache孵化器項目。官網(wǎng)
Clojure:可看做現(xiàn)代版Lisp的動態(tài)類型語言。官網(wǎng)
Ceylon:RedHat開發(fā)的面向?qū)ο箪o態(tài)類型編程語言。官網(wǎng)
Kotlin:JetBrain針對JVM、安卓和瀏覽器提供的靜態(tài)類型編程語言。官網(wǎng)
Xtend:一種靜態(tài)編程語言,能夠?qū)⑵浯a轉(zhuǎn)換為簡潔高效的Java代碼,并基于JVM運行。官網(wǎng)
日志
記錄應(yīng)用程序行為日志的開發(fā)庫。
Apache Log4j 2:使用強(qiáng)大的插件和配置架構(gòu)進(jìn)行完全重寫。官網(wǎng)
kibana:分析及可視化日志文件。官網(wǎng)
Logback:強(qiáng)健的日期開發(fā)庫,通過Groovy提供很多有趣的選項。官網(wǎng)
logstash:日志文件管理工具。官網(wǎng)
Metrics:通過JMX或HTTP發(fā)布參數(shù),并且支持存儲到數(shù)據(jù)庫。官網(wǎng)
SLF4J:日志抽象層,需要與具體的實現(xiàn)配合使用。官網(wǎng)
機(jī)器學(xué)習(xí)
提供具體統(tǒng)計算法的工具。其算法可從數(shù)據(jù)中學(xué)習(xí)。
Apache Flink:快速、可靠的大規(guī)模數(shù)據(jù)處理引擎。官網(wǎng)
Apache Hadoop:在商用硬件集群上用來進(jìn)行大規(guī)模數(shù)據(jù)存儲的開源軟件框架。官網(wǎng)
Apache Mahout:專注協(xié)同過濾、聚類和分類的可擴(kuò)展算法。官網(wǎng)
Apache Spark:開源數(shù)據(jù)分析集群計算框架。官網(wǎng)
DeepDive:從非結(jié)構(gòu)化數(shù)據(jù)建立結(jié)構(gòu)化信息并集成到已有數(shù)據(jù)庫的工具。官網(wǎng)
Deeplearning4j:分布式多線程深度學(xué)習(xí)開發(fā)庫。官網(wǎng)
H2O:用作大數(shù)據(jù)統(tǒng)計的分析引擎。官網(wǎng)
Weka:用作數(shù)據(jù)挖掘的算法集合,包括從預(yù)處理到可視化的各個層次。官網(wǎng)
QuickML:高效機(jī)器學(xué)習(xí)庫。官網(wǎng)、GitHub
消息傳遞
在客戶端之間進(jìn)行消息傳遞,確保協(xié)議獨立性的工具。
Aeron:高效可擴(kuò)展的單播、多播消息傳遞工具。官網(wǎng)
Apache ActiveMQ:實現(xiàn)JMS的開源消息代理(broker),可將同步通訊轉(zhuǎn)為異步通訊。官網(wǎng)
Apache Camel:通過企業(yè)級整合模式(Enterprise Integration Pattern EIP)將不同的消息傳輸API整合在一起。官網(wǎng)
Apache Kafka:高吞吐量分布式消息系統(tǒng)。官網(wǎng)
Hermes:快速、可靠的消息代理(Broker),基于Kafka構(gòu)建。官網(wǎng)
JBoss HornetQ:清晰、準(zhǔn)確、模塊化,可以方便嵌入的消息工具。官網(wǎng)
JeroMQ:ZeroMQ的純Java實現(xiàn)。官網(wǎng)
Smack:跨平臺XMPP客戶端函數(shù)庫。官網(wǎng)
Openfire:是開源的、基于XMPP、采用Java編程語言開發(fā)的實時協(xié)作服務(wù)器。 Openfire安裝和使用都非常簡單,并可利用Web界面進(jìn)行管理。?官網(wǎng)GitHub
Spark:是一個開源,跨平臺IM客戶端。它的特性支持集組聊天,電話集成和強(qiáng)大安全性能。如果企業(yè)內(nèi)部部署IM使用Openfire+Spark是最佳的組合。?官網(wǎng)?GitHub
Tigase: 是一個輕量級的可伸縮的 Jabber/XMPP 服務(wù)器。無需其他第三方庫支持,可以處理非常高的復(fù)雜和大量的用戶數(shù),可以根據(jù)需要進(jìn)行水平擴(kuò)展。?官網(wǎng)
雜項
未分類其它資源。
Design Patterns:實現(xiàn)并解釋了最常見的設(shè)計模式。官網(wǎng)
Jimfs:內(nèi)存文件系統(tǒng)。官網(wǎng)
Lanterna:類似curses的簡單console文本GUI函數(shù)庫。官網(wǎng)
LightAdmin:可插入式CRUD UI函數(shù)庫,可用來快速應(yīng)用開發(fā)。官網(wǎng)
OpenRefine:用來處理混亂數(shù)據(jù)的工具,包括清理、轉(zhuǎn)換、使用Web Service進(jìn)行擴(kuò)展并將其關(guān)聯(lián)到數(shù)據(jù)庫。官網(wǎng)
RoboVM:Java編寫原生iOS應(yīng)用。官網(wǎng)
Quartz:強(qiáng)大的任務(wù)調(diào)度庫.官網(wǎng)
應(yīng)用監(jiān)控工具
監(jiān)控生產(chǎn)環(huán)境中應(yīng)用程序的工具。
AppDynamics:性能監(jiān)測商業(yè)工具。官網(wǎng)
JavaMelody:性能監(jiān)測和分析工具。官網(wǎng)
Kamon:Kamon用來監(jiān)測在JVM上運行的應(yīng)用程序。官網(wǎng)
New Relic:性能監(jiān)測商業(yè)工具。官網(wǎng)
SPM:支持對JVM應(yīng)用程序進(jìn)行分布式事務(wù)追蹤的性能監(jiān)測商業(yè)工具。官網(wǎng)
Takipi:產(chǎn)品運行時錯誤監(jiān)測及調(diào)試商業(yè)工具。官網(wǎng)
原生開發(fā)庫
用來進(jìn)行特定平臺開發(fā)的原生開發(fā)庫。
JNA:不使用JNI就可以使用原生開發(fā)庫。此外,還為常見系統(tǒng)函數(shù)提供了接口。官網(wǎng)
自然語言處理
用來專門處理文本的函數(shù)庫。
Apache OpenNLP:處理類似分詞等常見任務(wù)的工具。官網(wǎng)
CoreNLP:斯坦佛CoreNLP提供了一組基礎(chǔ)工具,可以處理類似標(biāo)簽、實體名識別和情感分析這樣的任務(wù)。官網(wǎng)
LingPipe:一組可以處理各種任務(wù)的工具集,支持POS標(biāo)簽、情感分析等。官網(wǎng)
Mallet:統(tǒng)計學(xué)自然語言處理、文檔分類、聚類、主題建模等。官網(wǎng)
網(wǎng)絡(luò)
網(wǎng)絡(luò)編程函數(shù)庫。
Async Http Client:異步HTTP和WebSocket客戶端函數(shù)庫。官網(wǎng)
Grizzly:NIO框架,在Glassfish中作為網(wǎng)絡(luò)層使用。官網(wǎng)
Netty:構(gòu)建高性能網(wǎng)絡(luò)應(yīng)用程序開發(fā)框架。官網(wǎng)
OkHttp:一個Android和Java應(yīng)用的HTTP+SPDY客戶端。官網(wǎng)
Undertow:基于NIO實現(xiàn)了阻塞和非阻塞API的Web服務(wù)器,在WildFly中作為網(wǎng)絡(luò)層使用。官網(wǎng)
ORM
處理對象持久化的API。
Ebean:支持快速數(shù)據(jù)訪問和編碼的ORM框架。官網(wǎng)
EclipseLink:支持許多持久化標(biāo)準(zhǔn),JPA、JAXB、JCA和SDO。官網(wǎng)
Hibernate:廣泛使用、強(qiáng)健的持久化框架。Hibernate的技術(shù)社區(qū)非?;钴S。官網(wǎng)
MyBatis:帶有存儲過程或者SQL語句的耦合對象(Couples object)。官網(wǎng)
OrmLite:輕量級開發(fā)包,免除了其它ORM產(chǎn)品中的復(fù)雜性和開銷。官網(wǎng)
Nutz:另一個SSH。官網(wǎng),Github
JFinal:JAVA WEB + ORM框架。官網(wǎng),Github
用來幫助創(chuàng)建PDF文件的資源。
Apache FOP:從XSL-FO創(chuàng)建PDF。官網(wǎng)
Apache PDFBox:用來創(chuàng)建和操作PDF的工具集。官網(wǎng)
DynamicReports:JasperReports的精簡版。官網(wǎng)
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官網(wǎng)
iText:一個易于使用的PDF函數(shù)庫,用來編程創(chuàng)建PDF文件。注意,用于商業(yè)用途時需要許可證。官網(wǎng)
JasperReports:一個復(fù)雜的報表引擎。官網(wǎng)
性能分析
性能分析、性能剖析及基準(zhǔn)測試工具。
jHiccup:提供平臺中JVM暫停的日志和記錄。官網(wǎng)
JMH:JVM基準(zhǔn)測試工具。官網(wǎng)
JProfiler:商業(yè)分析器。官網(wǎng)
LatencyUtils:測量和報告延遲的工具。官網(wǎng)
VisualVM:對運行中的應(yīng)用程序信息提供了可視化界面。官網(wǎng)
YourKit Java Profiler:商業(yè)分析器。官網(wǎng)
響應(yīng)式開發(fā)庫
用來開發(fā)響應(yīng)式應(yīng)用程序的開發(fā)庫。
Reactive Streams:異步流處理標(biāo)準(zhǔn),支持非阻塞式反向壓力(backpressure)。官網(wǎng)
Reactor:構(gòu)建響應(yīng)式快速數(shù)據(jù)(fast-data)應(yīng)用程序的開發(fā)庫。官網(wǎng)
RxJava:通過JVM可觀察序列(observable sequence)構(gòu)建異步和基于事件的程序。官網(wǎng)
REST框架
用來創(chuàng)建RESTful 服務(wù)的框架。
Dropwizard:偏向于自己使用的Web框架。用來構(gòu)建Web應(yīng)用程序,使用了Jetty、Jackson、Jersey和Metrics。官網(wǎng)
Feign:受Retrofit、JAXRS-2.0和WebSocket啟發(fā)的HTTP客戶端連接器(binder)。官網(wǎng)
Jersey:JAX-RS參考實現(xiàn)。官網(wǎng)
RESTEasy:經(jīng)過JAX-RS規(guī)范完全認(rèn)證的可移植實現(xiàn)。官網(wǎng)
RestExpress:一個Java類型安全的REST客戶端。官網(wǎng)
RestX:基于注解處理和編譯時源碼生成的框架。官網(wǎng)
Retrofit:類型安全的REST客戶端。官網(wǎng)
Spark:受到Sinatra啟發(fā)的Java REST框架。官網(wǎng)
Swagger:Swagger是一個規(guī)范且完整的框架,提供描述、生產(chǎn)、消費和可視化RESTful Web Service。官網(wǎng)
Blade:國人開發(fā)的一個輕量級的MVC框架. 它擁有簡潔的代碼,優(yōu)雅的設(shè)計。官網(wǎng)
科學(xué)計算與分析
用于科學(xué)計算和分析的函數(shù)庫。
DataMelt:用于科學(xué)計算、數(shù)據(jù)分析及數(shù)據(jù)可視化的開發(fā)環(huán)境。官網(wǎng)
JGraphT:支持?jǐn)?shù)學(xué)圖論對象和算法的圖形庫。官網(wǎng)
JScience:用來進(jìn)行科學(xué)測量和單位的一組類。官網(wǎng)
搜索引擎
文檔索引引擎,用于搜索和分析。
Apache Solr:一個完全的企業(yè)搜索引擎。為高吞吐量通信進(jìn)行了優(yōu)化。官網(wǎng)
Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web接口和無schema的JSON文檔。官網(wǎng)
Apache Lucene:是一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網(wǎng)
安全
用于處理安全、認(rèn)證、授權(quán)或會話管理的函數(shù)庫。
Apache Shiro:執(zhí)行認(rèn)證、授權(quán)、加密和會話管理。官網(wǎng)
Bouncy Castle,涵蓋了從基礎(chǔ)的幫助函數(shù)到PGP/SMIME操作。官網(wǎng):多途加密開發(fā)庫。支持JCA提供者(JCA provider)
Cryptomator:在云上進(jìn)行客戶端跨平臺透明加密。官網(wǎng)
Keycloak:為瀏覽器應(yīng)用和RESTful Web Service集成SSO和IDM。目前還處于beta版本,但是看起來非常有前途。官網(wǎng)
PicketLink:PicketLink是一個針對Java應(yīng)用進(jìn)行安全和身份認(rèn)證管理的大型項目(Umbrella Project)。官網(wǎng)
序列化
用來高效處理序列化的函數(shù)庫。
FlatBuffers:高效利用內(nèi)存的序列化函數(shù)庫,無需解包和解析即可高效訪問序列化數(shù)據(jù)。官網(wǎng)
Kryo:快速、高效的對象圖形序列化框架。官網(wǎng)
FST:提供兼容JDK的高性能對象圖形序列化。官網(wǎng)
MessagePack:一種高效的二進(jìn)制序列化格式。官網(wǎng)
應(yīng)用服務(wù)器
用來部署應(yīng)用程序的服務(wù)器。
Apache Tomcat:針對Servlet和JSP的應(yīng)用服務(wù)器,健壯性好且適用性強(qiáng)。官網(wǎng)
Apache TomEE:Tomcat加Java EE。官網(wǎng)
Jetty:輕量級、小巧的應(yīng)用服務(wù)器,通常會嵌入到項目中。官網(wǎng)
WebSphere Liberty:輕量級、模塊化應(yīng)用服務(wù)器,由IBM開發(fā)。官網(wǎng)
WildFly:之前被稱作JBoss,由Red Hat開發(fā)。支持很多Java EE功能。官網(wǎng)
模板引擎
在模板中替換表達(dá)式的工具。
Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。官網(wǎng)
FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關(guān)系。官網(wǎng)
Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴(kuò)展(semantic Mustache)。官網(wǎng)
Thymeleaf:旨在替換JSP,支持XML文件的工具。官網(wǎng)
測試
測試內(nèi)容從對象到接口,涵蓋性能測試和基準(zhǔn)測試工具。
Apache JMeter:功能性測試和性能評測。官網(wǎng)
Arquillian:集成測試和功能行測試平臺,集成Java EE容器。官網(wǎng)
AssertJ:支持流式斷言提高測試的可讀性。官網(wǎng)
Awaitility:用來同步異步操作的DSL。官網(wǎng)
Cucumber:BDD測試框架。官網(wǎng)
Gatling:設(shè)計為易于使用、可維護(hù)的和高性能負(fù)載測試工具。官網(wǎng)
Hamcrest:可用來靈活創(chuàng)建意圖(intent)表達(dá)式的匹配器。官網(wǎng)
JMockit:用來模擬靜態(tài)、final方法等。官網(wǎng)
JUnit:通用測試框架。官網(wǎng)
Mockito:在自動化單元測試中創(chuàng)建測試對象,為TDD或BDD提供支持。官網(wǎng)
PowerMock: 支持模擬靜態(tài)方法、構(gòu)造函數(shù)、final類和方法、私有方法以及移除靜態(tài)初始化器的模擬工具。官網(wǎng)
REST Assured:為REST/HTTP服務(wù)提供方便測試的Java DSL。官網(wǎng)
Selenide:為Selenium提供精準(zhǔn)的周邊API,用來編寫穩(wěn)定且可讀的UI測試。官網(wǎng)
Selenium:為Web應(yīng)用程序提供可移植軟件測試框架。官網(wǎng)
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官網(wǎng)兼容JUnit框架,支持衍生的Groovy范的語言。
TestNG:測試框架。官網(wǎng)
Truth:Google的斷言和命題(proposition)框架。官網(wǎng)
Unitils:模塊化測試函數(shù)庫,支持單元測試和集成測試。官網(wǎng)
WireMock:Web Service測試樁(Stub)和模擬函數(shù)。官網(wǎng)
通用工具庫
通用工具類函數(shù)庫。
Apache Commons:提供各種用途的函數(shù),比如配置、驗證、集合、文件上傳或XML處理等。官網(wǎng)
args4j:命令行參數(shù)解析器。官網(wǎng)
CRaSH:為運行進(jìn)行提供CLI。官網(wǎng)
Gephi:可視化跨平臺網(wǎng)絡(luò)圖形化操作程序。官網(wǎng)
Guava:集合、緩存、支持基本類型、并發(fā)函數(shù)庫、通用注解、字符串處理、I/O等。官網(wǎng)
JADE:構(gòu)建、調(diào)試多租戶系統(tǒng)的框架和環(huán)境。官網(wǎng)
javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。官網(wǎng)
JCommander:命令行參數(shù)解析器。官網(wǎng)
Protégé:提供存在論(ontology)編輯器以及構(gòu)建知識系統(tǒng)的框架。官網(wǎng)
網(wǎng)絡(luò)爬蟲
用于分析網(wǎng)站內(nèi)容的函數(shù)庫。
Apache Nutch:可用于生產(chǎn)環(huán)境的高度可擴(kuò)展、可伸縮的網(wǎng)絡(luò)爬蟲。官網(wǎng)
Crawler4j:簡單的輕量級網(wǎng)絡(luò)爬蟲。官網(wǎng)
JSoup:刮取、解析、操作和清理HTML。官網(wǎng)
Web框架
用于處理Web應(yīng)用程序不同層次間通訊的框架。
Apache Tapestry:基于組件的框架,使用Java創(chuàng)建動態(tài)、強(qiáng)健的、高度可擴(kuò)展的Web應(yīng)用程序。官網(wǎng)
Apache Wicket:基于組件的Web應(yīng)用框架,與Tapestry類似帶有狀態(tài)顯示GUI。官網(wǎng)
Google Web Toolkit:一組Web開發(fā)工具集,包含在客戶端將Java代碼轉(zhuǎn)為JavaScript的編譯器、XML解析器、RCP?官網(wǎng)API、JUnit集成、國際化支持和GUI控件。
Grails:Groovy框架,旨在提供一個高效開發(fā)環(huán)境,使用約定而非配置、沒有XML并支持混入(mixin)。官網(wǎng)
Ninja:Java全棧Web開發(fā)框架。非常穩(wěn)固、快速和高效。官網(wǎng)
Pippo:小型、高度模塊化的類Sinatra框架。官網(wǎng)
Play:使用約定而非配置,支持代碼熱加載并在瀏覽器中顯示錯誤。官網(wǎng)
PrimeFaces:JSF框架,提供免費和帶支持的商業(yè)版本。包括若干前端組件。官網(wǎng)
Ratpack:一組Java開發(fā)函數(shù)庫,用于構(gòu)建快速、高效、可擴(kuò)展且測試完備的HTTP應(yīng)用程序。官網(wǎng)
Spring Boot:微框架,簡化了Spring新程序的開發(fā)過程。官網(wǎng)
Spring:旨在簡化Java EE的開發(fā)過程,提供依賴注入相關(guān)組件并支持面向切面編程。官網(wǎng)
Vaadin:基于GWT構(gòu)建的事件驅(qū)動框架。使用服務(wù)端架構(gòu),客戶端使用Ajax。官網(wǎng)
Blade:國人開發(fā)的一個輕量級的MVC框架. 它擁有簡潔的代碼,優(yōu)雅的設(shè)計。官網(wǎng)
業(yè)務(wù)流程管理套件
流程驅(qū)動的軟件系統(tǒng)構(gòu)建。
jBPM:非常靈活的業(yè)務(wù)流程管理框架,致力于構(gòu)建開發(fā)與業(yè)務(wù)分析人員之間的橋梁。官網(wǎng)
Activity:輕量級工作流和業(yè)務(wù)流程管理框架。官網(wǎng)?github
資源
社區(qū)