jetty源碼
㈠ tomcat和jetty的區別
沒什麼大的區別。
最明顯的區別:jetty啟動比tomcat快多了。還有網上說的jetty處理靜態資源比tomcat給力
Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認為,當在一台機器上配置好Apache 伺服器,可利用它響應HTML(標准通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat 部分是Apache 伺服器的擴展,但它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。
㈡ 如何將geoserver源代碼打包成war包,然後放在tomcat下運行
可以在eclipse中使用maven插件,創建一個maven項目,然後就可以打包成 war文件,geoserver的伺服器 我認為使用jetty比較好!
㈢ 有用過jetty的么,說下感覺,和tomcat的區別
我剛用上jetty,覺得沒什麼大的區別。
最明顯的區別:jetty啟動比tomcat快多了。還有網上說的jetty處理靜態資源比tomcat給力
~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕
~~手機提問的朋友在客戶端右上角評價點【滿意】即可。
㈣ 關於Jetty,怎麼用它是怎麼將靜態網頁發行的關於它的知識,越多越好。。
java是由Sun Microsystems公司於1995年5月推出的Java程序設計語言(以下簡稱Java語言)和Java平台的總稱。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。另一方面,Java技術也不斷更新。
Java平台由Java虛擬機(Java Virtual Machine)和Java 應用編程介面(Application Programming Interface、簡稱API)構成。Java 應用編程介面為Java應用提供了一個獨立於操作系統的標准介面,可分為基本部分和擴展部分。在硬體或操作系統平台上安裝一個Java平台之後,Java應用程序就可運行。現在Java平台已經嵌入了幾乎所有的操作系統。這樣Java程序可以只編譯一次,就可以在各種系統中運行。Java應用編程介面已經從1.1x版發展到1.2版。目前常用的Java平台基於Java1.4,最近版本為Java1.7。
Java分為三個體系JavaSE(Java2 Platform Standard Edition,java平台標准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企業版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。
2009年04月20日,oracle(甲骨文)宣布收購sun。
[編輯本段]JAVA-名字起源
一天,幾位Java成員組的會員正在討論給這個新的語言取什麼名字,當時他們正在咖啡館喝著Java(爪哇)咖啡,有一個人靈機一動說就叫Java怎樣,這個提議得到了其他人的贊同,於是,Java這個名字就這樣傳開了。原來看SUN的JAVA標識沒去多想,現在看看,這不就是一杯正冒著熱氣的咖啡嗎?
[編輯本段]Java語言特點
Java是一種簡單的,面向對象的,分布式的,解釋型的,健壯安全的,結構中立的,可移植的,性能優異、多線程的動態語言。
當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?
Java語言其實最早誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。
在Java出現以前,Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEB中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力。SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都心生感嘆:噢,這正是我想要的!於是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。
[編輯本段]Java主要特性
1、Java語言是簡單的。Java語言的語法與c語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。
2、Java語言是一個面向對象的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++ 語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。
3、Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java.net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
4、Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
5、Java語言是安全的。Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。
6、Java語言是體系結構中立的。Java程序(後綴為java的文件)在Java平台上被編譯為體系結構中立的位元組碼格式(後綴為class的文件), 然後可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網路環境和軟體的分發。
7、Java語言是可移植的。這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。
8、Java語言是解釋型的。如前所述,Java程序在Java平台上被編譯為位元組碼格式, 然後可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java解釋器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。
9、Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。
10、Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable) 的構造子將一個實現了Runnable介面的對象包裝成一個線程,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。 Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字為synchronized)。
11、Java語言是動態的。Java語言的設計目標之一是適應於動態變化的環境。Java程序需要的類能夠動態地被載入到運行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。
Java語言的優良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統的維護費用。Java對對象技術的全面支持和Java平台內嵌的API能縮短應用系統的開發時間並降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平台之間傳遞信息的低成本方式。特別是Java企業應用編程介面(Java Enterprise APIs)為企業計算及電子商務應用系統提供了有關技術和豐富的類庫。
[編輯本段]Java相關技術
1、JDBC(Java Database Connectivity)提供連接各種關系資料庫的統一介面,可以為多種關系資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC為工具/資料庫開發人員提供了一個標準的API,據此可以構建更高級的工具和介面,使資料庫開發人員能夠用純 Java API 編寫資料庫應用程序,同時,JDBC也是個商標名。
2、EJB(Enterprise JavaBeans)使得開發者方便地創建、部署和管理跨平台的基於組件的企業應用。
3、Java RMI(Java Remote Method Invocation)用來開發分布式Java應用程序。一個Java對象的方法能被遠程Java虛擬機調用。這樣,遠程方法激活可以發生在對等的兩端,也可以發生在客戶端和伺服器之間,只要雙方的應用程序都是用Java寫的。
4、Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無縫的互操作性。這使得Java能集成異構的商務信息資源。
5、JNDI(Java Naming and Directory Interface)提供從Java平台到的統一的無縫的連接。這個介面屏蔽了企業網路所使用的各種命名和目錄服務。
6、JMAPI(Java Management API)為異構網路上系統、網路和服務管理的開發提供一整套豐富的對象和方法。
7、JMS(Java Message Service)提供企業消息服務,如可靠的消息隊列、發布和訂閱通信、以及有關推拉(Push/Pull)技術的各個方面。
8、JTS(Java transaction Service)提供存取事務處理資源的開放標准,這些事務處理資源包括事務處理應用程序、事務處理管理及監控。
在Java技術中,值得關注的還有JavaBeans,它是一個開放的標準的組件體系結構,它獨立於平台,但使用Java語言。一個JavaBean是一個滿足JavaBeans規范的Java類,通常定義了一個現實世界的事物或概念。一個JavaBean的主要特徵包括屬性、方法和事件。通常,在一個支持JavaBeans規范的開發環境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可視地操作JavaBean,也可以使用JavaBean構造出新的JavaBean。JavaBean的優勢還在於Java帶來的可移植性。現在,EJB (Enterprise JavaBeans) 將JavaBean概念擴展到Java服務端組件體系結構,這個模型支持多層的分布式對象應用。除了JavaBeans,典型的組件體系結構還有DCOM和CORBA,關於這些組件體系結構的深入討論超出了本書的范圍。
java-參見
計算機科學課程列表
JNI(Java Native Interface)Java本地介面。
[編輯本段]Java開源項目
Spring Framework
Spring 是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的 Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了 Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。 Spring提供了一個用標准Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的 aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。.
WebWork
WebWork 是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,現在的WebWork2.x前身是Rickard Oberg開發的WebWork,但現在WebWork已經被拆分成了Xwork1和WebWork2兩個項目。 Xwork簡潔、靈活功能強大,它是一個標準的Command模式實現,並且完全從web層脫離出來。 Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcher將HTTP請求的變成 Action(業務層Action類), session(會話)application(應用程序)范圍的映射,request請求參數映射。WebWork2支持多視圖表示,視圖部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了對AJAX的支持,這支持是構建在DWR與Dojo這兩個框架的基礎之上.
Struts
Struts 是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。
Hibernate
Hibernate 是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的Hibernate輔助開發工具:
Quartz
Quartz 是OpenSymphony開源組織在Job scheling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。Jobs可以做成標準的Java組件或 EJBs。Quartz的最新版本為Quartz 1.5.0。
Velocity
Velocity 是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。 Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。
IBATIS
使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM 而言基本一致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 「全自動」ORM機制而言,ibatis 以SQL開發的工作量和資料庫移植性上的讓步,為系統設計提供了更大的自由空間。作為「全自動」ORM 實現的一種有益補充,ibatis 的出現顯 得別具意義。
Compiere ERP&CRM
Compiere ERP&CRM為全球范圍內的中小型企業提供綜合型解決方案,覆蓋從客戶管理、供應鏈到財務管理的全部領域,支持多組織、多幣種、多會計模式、多成本計算、多語種、多稅制等國際化特性。易於安裝、易於實施、易於使用。只需要短短幾個小時,您就可以使用申購-采購-發票-付款、報價-訂單-發票-收款、產品與定價、資產管理、客戶關系、供應商關系、員工關系、經營業績分析等強大功能了。
Roller Weblogger
這個weblogging 設計得比較精巧,源代碼是很好的學習資料。它支持weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁面模板,RSS syndication,blogroll管理和提供一個XML-RPC 介面。
Eclipse
Eclipse平台是IBM向開放源碼社區捐贈的開發框架,它之所以出名並不是因為IBM宣稱投入開發的資金總數 —4千萬美元,而是因為如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴展的體系結構。
NetBeans
NetBeans IDE 是一個為軟體開發者提供的自由、開源的集成開發環境。您可以從中獲得您所需要的所有工具,用 Java、C/C++ 甚至是 Ruby 來創建專業的桌面應用程序、企業應用程序、web 和移動應用程序。此 IDE 可以在多種平台上運行,包括 Windows、Linux、Mac OS X 以及 Solaris;它易於安裝且非常方便使用。
XPlanner
XPlanner 一個基於Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如iteration、user stories等,XPlanner都提供了相對應的的管理工具,XPlanner支持XP開發流程,並解決利用XP思想來開發項目所碰到的問題。 XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(Virtual note cards),iterations、user stories與工作記錄的追蹤,未完成stories將自動迭代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP界面支持。
HSQLDB
HSQLDB(Hypersonic SQL)是純Java開發的關系型資料庫,並提供JDBC驅動存取數據。支持ANSI-92 標准 SQL語法。而且他占的空間很小。大約只有160K,擁有快速的資料庫引擎。
Liferay
代表了完整的J2EE應用,使用了Web、EJB以及JMS等技術,特別是其前台界面部分使用Struts 框架技術,基於XML的portlet配置文件可以自由地動態擴展,使用了Web Services來支持一些遠程信息的獲取,使用 Apahce Lucene實現全文檢索功能。
JetSpeed
Jetspeed 是一個開放源代碼的企業信息門戶(EIP)的實現,使用的技術是Java和XML。用戶可以使用瀏覽器,支持WAP協議的手機或者其它的設備訪問Jetspeed架設的信息門戶獲取信息。Jetspeed扮演著信息集中器的角色,它能夠把信息集中起來並且很容易地提供給用戶。
JOnAS
JOnAS 是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet 2.3和JSP 1.2規范。JOnAS伺服器依賴或實現以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
JFox3.0
JFox 是 Open Source Java EE Application Server,致力於提供輕量級的Java EE應用伺服器,從3.0開始,JFox提供了一個支持模塊化的MVC框架,以簡化EJB以及Web應用的開發! 如果您正在尋找一個簡單、輕量、高效、完善的Java EE開發平台,那麼JFox正是您需要的。
[編輯本段]Java IDE
當今最流行的是Eclipse,Myeclipse,Jbuilder2008,Jdeveloper,Netbeans等。
[編輯本段]Java圖書
Java編程思想(第4版)
作 者: (美)埃克爾 著,陳昊鵬 譯
Java編程思想(第4版)出 版 社: 機械工業出版社
出版時間: 2007-6-1 字 數: 版 次: 1 頁 數: 880 印刷時間: 2007/06/01 開 本: 印 次: 紙 張: 膠版紙 I S B N : 9787111213826 包 裝: 平裝
作者簡介
Bruce Eckel是MindView公司的總裁,該公司向客戶提供軟體咨詢和培訓。他是C++標准委員會擁有表決權的成員之一,擁有應用物理學學士和計算機工程碩士學位。除本書外,他還是《C++編程思想》的作者,並與人合著了《C++編程思想 第2卷》(這兩本書的英文影印版及中文版均已由機械工業出版社引進出版)及其他著作。他已經發表了150多篇論文,還經常參加世界各地的研討會並進行演講。
[編輯本段]Java版本歷史
1995年5月23日,Java語言誕生
1996年1月,第一個JDK-JDK1.0誕生
1996年4月,10個最主要的操作系統供應商申明將在其產品中嵌入JAVA技術
1996年9月,約8.3萬個網頁應用了JAVA技術來製作
1997年2月18日,JDK1.1發布
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
1997年9月,JavaDeveloperConnection社區成員超過十萬
1998年2月,JDK1.1被下載超過2,000,000次
1998年12月8日,JAVA2企業平台J2EE發布
1999年6月,SUN公司發布Java的三個版本:標准版(J2SE)、企業版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3發布
2000年5月29日,JDK1.4發布
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機
2001年9月24日,J2EE1.3發布
2002年2月26日,J2SE1.4發布,自此Java的計算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5發布,成為Java語言發展史上的又一里程碑。為了表示該版本的重要性,J2SE1.5更名為Java SE 5.0
2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名,以取消其中的數字「2」:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME
2006年12月,SUN公司發布JRE6.0
目前JDK7.0已經在研發中,已經有測試版在 https://jdk7.dev.java.net/ 可以下載使用
[編輯本段]Java與Internet
我們知道,早先的www僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。
Java並不是為Internet、www而設計的,它也可以用來編寫獨立的應用程序。Java是一種面向對象語言,Java語言類似於C++語言,所以已熟練掌握C++語言的編程人員,再學習Java語言就容易得多!Java程序需要編譯,它被放置在Internet伺服器上,當用戶訪問伺服器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。實際上有兩種Java程序:一種Java應用程序是一個完整的程序,如Web瀏覽器。另一種Java小應用程序是運行於Web瀏覽器中的一個程序。
Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音,你還能播放頁面里的動畫,Java還能告訴你的瀏覽器怎樣處理新的類型文件。當我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。
[編輯本段]Java與電子商務
電子商務是當今的熱門話題,然而傳統的編程語言難以勝任電子商務系統,電子商務要求程序代碼具有基本的要求:安全、可靠、同時要求能與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時面向對象,在網路編程語言中占據無可比擬的優勢,成為實現電子商務系統的首選語言。
[編輯本段]Java的八大基本數據類型及其包裝類
原始類型 包裝類 原始類型所佔的位元組數
short Short 2個位元組
int Integer 4個位元組
long Long 8個位元組
float Float 4個位元組
double Double 8個位元組
byte Byte 1個位元組
char Character 2個位元組
boolean Boolean 這個試編譯環境而定
[編輯本段]第一個JAVA程序HelloWorld
//文件名 HelloWorld.java
//聲明一個類
public class HelloWorld {
//聲明一個方法
public static void main(String[] args){ //程序的入口
//輸出
System.out.println("hello world!");
}
}
//例子
package Text;
public class Test(
public static void main(String[] args){
short d = 12; //短整型
System.out.println(d); //輸出d
long c = 144L; //長整型,要加l
System.out.println(c); //輸出c
int z = 15; //整型
System.out.println(z); //輸出z
char e = '我'; //字元型"我"
System.out.println(e);//輸出e
}
)
[編輯本段]Java新手入門很重要的幾個基本概念
[1][2][3]final類:為防止他人從你的類上派生新類,此類是不可擴展的。
動態調用比靜態調用花費的時間要長。
抽象類:規定一個或多個抽象方法的類本身必須定義為abstract。
例: public abstract string getDescripition
Java中的每一個類都是從Object類擴展而來的。
object類中的equal和toString方法。
equal用於測試一個對象是否同另一個對象相等。
toString返回一個代表該對象的字元串,幾乎每一個類都會重載該方法,以便返回當前狀態的正確表示。
(toString 方法是一個很重要的方法)
通用編程:任何類類型的所有值都可以同object類性的變數來代替。
數組列表:ArrayList動態數組列表,是一個類庫,定義在java.uitl包中,可自動調節數組的大小。
class類 object類中的getclass方法返回class類型的一個實例,程序啟動時包含在main方法的類會被載入,虛擬機要載入他需要的所有類,每一個載入的類都要載入它需要的類。
我可以幫助你,你先設置我最佳答案後,我網路Hii教你。你的串號我已經記下,採納後我會幫你製作
㈤ jetty可以與struts2整合嗎
搭建web開發測試環境,使用jetty作為伺服器(也可以使用Tomcat),只需要在maven的pom.xml中的<build></build>標簽中加入以下內容,接著import maven changes,然後build工程,並採用jetty:start方式啟動伺服器,這時就能訪問index.jsp首頁
Xml代碼
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.6.10.v20130312</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<!--
<webApp>
<contextPath>/test</contextPath>
</webApp>
-->
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>9090</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<stopPort>9091</stopPort>
<stopKey>foo</stopKey>
</configuration>
</plugin>
</plugins>
2、struts2的使用
(1)jar包下載:struts2主要用於MVC分離,表單(form action=「」)提交時控制器會將請求轉交給對應的Action(extends ActionSupport),為了使用struts2,需要導入對應的jar包,在maven的配置文件pom.xml中加入以下內容:
Xml代碼
<!-- struts2依賴包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.14</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
(2)使用struts2:這時可以使用struts2了,為了使用struts2,需要配置web工程中的web.xml文件,告訴工程要使用框架,在web.xml中加入以下內容:
Xml代碼
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(3)struts2配置文件:該配置文件主要配置action到class的map映射,這樣在前端只需要填寫action名稱,struts2就知道交給哪個類來處理,首先創建struts.xml文件,放置在類源碼根路徑下,配置如下:
Xml代碼
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 支持動態調用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!-- 設置開發模式 -->
<constant name="struts.devMode" value="false"/>
<!-- 添加struts2-spring整合的插件 -->
<!--<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />-->
<constant name="struts.objectFactory" value="spring" />
<package name="front" namespace="/" extends="struts-default">
<action name="login" class="com.mz.action.LoginAction" method="login">
<result name="success">/index.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
</struts>
(4)前端使用action:首先創建前端頁面login.jsp:
Html代碼
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登錄界面</title>
</head>
<body>
<form action="login" method="post">
<table>
<tr>
<td>用戶名:</td>
<td><input type="text" name="username" /> </td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="text" name="password" /> </td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登錄" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</body>
</html>
(5)定義action類:這里的form表單submit時將發出post請求,在伺服器端交給login這個action來處理,根據strut.xml配置文件該action對應LoginAction,所以我們創建該類:類定義如下:
Java代碼
package com.mz.action;
import com.mz.service.ILoginService;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
* Created by hadoop on 15-9-7.
*/
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public String execute(){
return SUCCESS;
}
public String login() throws IOException {
try {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + ":" + password);
if("admin".equals(username) && "123456".equals(password)){
response.getWriter().write("login success!");
response.getWriter().flush();
return SUCCESS;
}
else {
response.getWriter().write("login failed!");
response.getWriter().flush();
return "login";
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "login";
}
}
}
這個時候rebuild工程,restart jetty,然後訪問localhost:9090/login.jsp,輸入用戶名和密碼即可
(6)<welcome-file>失效,每次訪問需要輸入完整路徑,否則會報匹配不到action的錯誤,為了避免這個問題可以在struts配置文件中增加如下內容:
Xml代碼
<package name="front" namespace="/" extends="json-default">
<default-action-ref name="login" />
<action name="login">
<result name="success">/login.html</result>
</action>
即當輸入網址localhost:9090時,默認使用login.action處理,跳轉到登錄頁面
㈥ maven的jetty插件可以斷點調試嗎
環境和條件
Maven-3.0.3
Eclipse
請閱讀者事先具備一定maven知識
2 配置
2.1 添加Jetty插件
在pom.xml中加入如下代碼段
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.1.v20091125</version>
<configuration>
<contextPath>/</contextPath>
</webAppConfig>
</configuration>
</plugin>
2.2 配置eclipse
2.2.1 步驟一
進入Run/External Tools/External Tools Configuration目錄,選擇逗Program地並點擊逗New地按鈕。在逗Main地標簽中的逗Location地中設置mvn的執行路徑(比如/JavaDev/apache-maven-3.0.3/bin/mvn),在逗Working Directory地中選擇webapp所屬的workspace,在逗Arguments地中添加逗jetty:run地,如圖:
在逗Environment地標簽中,點擊逗New地按鈕,添加變數:MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
如果設置suspend=n,則運行時不需要等待debugger。
2.2.2 步驟二
進入逗Run/Debug/Debug Configuration地目錄,選擇逗Remote Java Application地並點擊逗New地按鈕,在逗Project地中選擇webapp項目。並確保埠號與步驟一中逗address=地設置的值相同。
關聯源碼:選擇逗Source地標簽,選擇逗Add…地按鈕添加關聯的源代碼,如下圖,選擇逗Java Project地關聯了vos-sale-service項目和vos-sale-webapp的源碼。源代碼關聯後,即可進行調試。
配置完畢,開始調試:
1. 在逗Run/External Tools地中選擇步驟一中創建的逗Program地名稱,開始運行插件,如果設置了suspend=y,則會等待下面的debugger運行;
2. 在逗Run/Debug地中選擇步驟二中創建的debugger,連接上後,即可以進行debug。
2.2.3 關閉Jetty
為了關閉jetty,建議選中步驟二中的逗Allow termination of remote VM地
㈦ 您好,我想向您請教關於android應用中嵌入ijetty的問題,網上介紹的不具體
1、下載ijetty的源碼包,內部分為server和UI兩部分,server部分是核心包,需要獨立打包編譯為jar,供UI部分使用,而UI包即使我們改造的部分,去掉原有的界面,只需要保留啟動服務的部分即可。
2、server部分編譯出:i-jetty-server-3.1.jar;
3、總共對外依賴的包需要如下這些:
其中,xmlParserAPIs-2.6.2.jar和xpp3-1.1.4.jar因為某些原因會導致出錯,故可以剔除出去,並不影響ijetty的運行。為了簡介,這些類可以解壓後重新打包到一起,至少jetty的部分可以這么做。
4、web工程需要編譯成android可以解析的dex格式zip包,需要注意的是,第三方的lib需要剔除不需要的,尤其是servlet-api-2.5.jar,因為容器中已經包含一個了。
打包命令舉例:
dx.bat --dex --output=E:\demo\classes.zip E:\demo\WEB-INF\classes E:\demo\WEB-INF\lib
5、把classes.zip包放到lib下,刪除原先的jar包,class下的類需要保留,然後打成war包:
jar cvf ppweb.war *.*
6、把ppweb放到jetty目錄下的webapps下即可,重啟程序即可訪問了。
7、基於ijetty的web需要注意,對外部context的引用需要用android系統的,不能用原先web工程那種方式獲取。
8、集成ijetty最重要的是用到IJettyservice這個類,以及Ijetty中定義的一些環境常量,用默認值即可很好運行。注意Ijetty中的如下代碼:
static { __JETTY_DIR = new File(Environment.getExternalStorageDirectory(), "jetty"); // Ensure parsing is not validating - does not work with android System.setProperty("org.eclipse.jetty.xml.XmlParser.Validating", "false"); // Bridge Jetty logging to Android logging System.setProperty("org.eclipse.jetty.util.log.class", "org.mortbay.ijetty.AndroidLog"); org.eclipse.jetty.util.log.Log.setLog(new AndroidLog()); }
跳過的xml的驗證,否則運行不起來。
㈧ 如何讓嵌入式Jetty載入Spring WebApplicationInitializer
使用Jetty的嵌入式API,可以將J2EE容器嵌入你的Application中,更進一步的是,採用Servlet 3.0的標准,你甚至可以省掉web.xml的配置文件,因此Spring提供了類 。但是在實際開發中,發現Jetty的嵌入式API默認情況下只載入WEB-INF/lib/或者WEB-INF/classes中的類。通過閱讀Jetty的源代碼,找到一個解決方法,代碼如下:
WebAppContext context = new WebAppContext();
context.setContextPath("/");
context.setBaseResource(Resource.newClassPathResource("META-INF/webapp"));
MetaData metaData = _ctx.getMetaData();
Resource webappInitializer = Resource.newResource(WebApp.class.getProtectionDomain().getCodeSource().getLocation());
metaData.addContainerResource(webappInitializer);
AnnotationConfiguration config = new AnnotationConfiguration();
context.setConfigurations(new Configuration[] { config });
List<Handler> handlers = new ArrayList<Handler>();
handlers.add(context);
HandlerList handlerList = new HandlerList();
handlerList.setHandlers(handlers.toArray(new Handler[0]));
HandlerCollection handlerCollection = new HandlerCollection();
handlerCollection.setHandlers(new Handler[] { handlerList });
Server server = new Server(8888);
server.setHandler(handlerCollection);
server.setStopAtShutdown(true);
server.start();
server.join();
關鍵就是下面兩句:
MetaData metaData = _ctx.getMetaData();
Resource webappInitializer = Resource.newResource(WebApp.class.getProtectionDomain().getCodeSource().getLocation());
metaData.addContainerResource(webappInitializer);
由於Jetty本身代碼的原因,WebApplicationInitializer的實現必須直接實現介面,不能繼承 。
public class WebApp implements WebApplicationInitializer {
@Override
public void onStartup(final ServletContext servletContext)
throws ServletException {
context = new ();
//..省略
}
另外,把webapp的內容放入"META-INF「下,同時打包到.jar文件,設置相應的路徑為:
context.setBaseResource(Resource.newClassPathResource("META-INF/webapp"));
即可將你的webapp製作成一個可執行的.jar文件。順便說一句,Nexus似乎就是這么乾的。
㈨ GitHub上面有哪些經典的java框架源碼
Bazel:來自Google的構建工具,可以快速、可靠地構建代碼。官網
Gradle:使用Groovy(非XML)進行增量構建,可以很好地與Maven依賴管理配合工作。官網
Buck:Facebook構建工具。官網
ASM:通用底層位元組碼操作和分析開發庫。官網
Byte Buddy:使用流式API進一步簡化位元組碼生成。官網
Byteman:在運行時通過DSL(規則)操作位元組碼進行測試和故障排除。官網
Javassist:一個簡化位元組碼編輯嘗試。官網
Apache Aurora:Apache Aurora是一個Mesos框架,用於長時間運行服務和定時任務(cron job)。官網
Singularity:Singularity是一個Mesos框架,方便部署和操作。它支持Web Service、後台運行、調度作業和一次性任務。官網
Checkstyle:代碼編寫規范和標准靜態分析工具。官網
Error Prone:將常見編程錯誤作為運行時錯誤報告。官網
FindBugs:通過位元組碼靜態分析查找隱藏bug。官網
jQAssistant:使用基於Neo4J查詢語言進行代碼靜態分析。官網
PMD:對源代碼分析查找不良的編程習慣。官網
SonarQube:通過插件集成其它分析組件,對過去一段時間內的數據進行統計。官網
ANTLR:復雜的全功能自頂向下解析框架。官網
JavaCC:JavaCC是更加專門的輕量級工具,易於上手且支持語法超前預測。官網
config:針對JVM語言的配置庫。官網
owner:減少冗餘配置屬性。官網
Choco:可直接使用的約束滿足問題求解程序,使用了約束規劃技術。官網
JaCoP:為FlatZinc語言提供了一個介面,可以執行MiniZinc模型。官網
OptaPlanner:企業規劃與資源調度優化求解程序。官網
Sat4J:邏輯代數與優化問題最先進的求解程序。官網
Bamboo:Atlassian解決方案,可以很好地集成Atlassian的其他產品。可以選擇開源許可,也可以購買商業版。官網
CircleCI:提供託管服務,可以免費試用。官網
Codeship:提供託管服務,提供有限的免費模式。官網
fabric8:容器集成平台。官網
Go:ThoughtWork開源解決方案。官網
Jenkins:支持基於伺服器的部署服務。官網
TeamCity:JetBrain的持續集成解決方案,有免費版。官網
Travis:通常用作開源項目的託管服務。官網
Buildkite: 持續集成工具,用簡單的腳本就能設置pipeline,而且能快速構建,可以免費試用。官網
uniVocity-parsers:速度最快功能最全的CSV開發庫之一,同時支持TSV與固定寬度記錄的讀寫。官網
Apache Phoenix:HBase針對低延時應用程序的高性能關系資料庫層。官網
Crate:實現了數據同步、分片、縮放、復制的分布式數據存儲。除此之外還可以使用基於SQL的語法跨集群查詢。官網
Flyway:簡單的資料庫遷移工具。官網
H2:小型SQL資料庫,以可以作為內存資料庫使用著稱。官網
HikariCP:高性能JDBC連接工具。官網
JDBI:便捷的JDBC抽象。官網
Protobuf:Google數據交換格式。官網
SBE:簡單二進制編碼,是最快速的消息格式之一。官網
Wire:整潔輕量級協議緩存。官網
Apache DeltaSpike:CDI擴展框架。官網
Dagger2:編譯時注入框架,不需要使用反射。官網
Guice:可以匹敵Dagger的輕量級注入框架。官網
HK2:輕量級動態依賴注入框架。官網
ADT4J:針對代數數據類型的JSR-269代碼生成器。官網
AspectJ:面向切面編程(AOP)的無縫擴展。官網
Auto:源代碼生成器集合。官網
DCEVM:通過修改JVM在運行時支持對已載入的類進行無限次重定義。官網
HotswapAgent:支持無限次重定義運行時類與資源。官網
Immutables:類似Scala的條件類。官網
JHipster:基於Spring Boot與AngularJS應用程序的Yeoman源代碼生成器。官網
JRebel:無需重新部署,可以即時重新載入代碼與配置的商業軟體。官網
Lombok:減少冗餘的代碼生成器。官網
Spring Loaded:類重載代理。官網
vert.x:多語言事件驅動應用框架。官網
Akka:用來編寫分布式容錯並發事件驅動應用程序的工具和運行時。官網
Apache Storm:實時計算系統。官網
Apache ZooKeeper:針對大型分布式系統的協調服務,支持分布式配置、同步和名稱注冊。官網
Hazelcast:高可擴展內存數據網格。官網
Hystrix:提供延遲和容錯。官網
JGroups:提供可靠的消息傳遞和集群創建的工具。官網
Orbit:支持虛擬角色(Actor),在傳統角色的基礎上增加了另外一層抽象。官網
Quasar:為JVM提供輕量級線程和角色。官網
Apache Cassandra:列式資料庫,可用性高且沒有單點故障。官網
Apache HBase:針對大數據的Hadoop資料庫。官網
Druid:實時和歷史OLAP數據存儲,在聚集查詢和近似查詢方面表現不俗。官網
Infinispan:針對緩存的高並發鍵值對數據存儲。官網
Bintray:發布二進制文件版本控制工具。可以於Maven或Gradle一起配合使用。提供開源免費版本和幾種商業收費版本。官網
Central Repository:最大的二進制組件倉庫,面向開源社區提供免費服務。Apache Maven默認使用Central官網Repository,也可以在所有其他構建工具中使用。
IzPack:為跨平台部署建立創作工具(Authoring Tool)。官網
JitPack:打包GitHub倉庫的便捷工具。可根據需要構建Maven、Gradle項目,發布可立即使用的組件。官網
Launch4j:將JAR包裝為輕量級本機Windows可執行程序。官網
Nexus:支持代理和緩存功能的二進制管理工具。官網
packr:將JAR、資源和JVM打包成Windows、Linux和Mac OS X本地發布文件。官網
Apache POI:支持OOXML規范(XLSX、DOCX、PPTX)以及OLE2規范(XLS、DOC、PPT)。官網
documents4j:使用第三方轉換器進行文檔格式轉換,轉成類似MS Word這樣的格式。官網
jOpenDocument:處理OpenDocument格式(由Sun公司提出基於XML的文檔格式)。官網
Cyclops:支持一元(Monad)操作和流操作工具類、comprehension(List語法)、模式匹配、trampoline等特性。官網
Fugue:Guava的函數式編程擴展。官網
Functional Java:實現了多種基礎和高級編程抽象,用來輔助面向組合開發(composition-oriented development)。官網
Javaslang:一個函數式組件庫,提供持久化數據類型和函數式控制結構。官網
jOOλ:旨在填補Java 8 lambda差距的擴展,提供了眾多缺失的類型和一組豐富的順序流API。官網
jMonkeyEngine:現代3D游戲開發引擎。官網
libGDX:全面的跨平台高級框架。官網
LWJGL:對OpenGL/CL/AL等技術進行抽象的健壯框架。官網
JavaFX:Swing的後繼者。官網
Scene Builder:開發JavaFX應用的可視化布局工具。官網
Agrona:高性能應用中常見的數據結構和工具方法。官網
Disruptor:線程間消息傳遞開發庫。官網
fastutil:快速緊湊的特定類型集合(Collection)。官網
GS Collections:受Smalltalk啟發的集合框架。官網
HPPC:基礎類型集合。官網
Javolution:實時和嵌入式系統的開發庫。官網
JCTools:JDK中缺失的並發工具。官網
Koloboke:Hash set和hash map。官網
Trove:基礎類型集合。官網
High-scale-bli:Cliff Click 個人開發的高性能並發庫官網
Eclipse:老牌開源項目,支持多種插件和編程語言。官網
IntelliJ IDEA:支持眾多JVM語言,是安卓開發者好的選擇。商業版主要針對企業客戶。官網
NetBeans:為多種技術提供集成化支持,包括Java SE、Java EE、資料庫訪問、HTML5
Imgscalr:純Java 2D實現,簡單、高效、支持硬體加速的圖像縮放開發庫。官網
Picasso:安卓圖片下載和圖片緩存開發庫。官網
Thumbnailator:Thumbnailator是一個高質量Java縮略圖開發庫。官網
ZXing:支持多種格式的一維、二維條形碼圖片處理開發庫。官網
im4java: 基於ImageMagick或GraphicsMagick命令行的圖片處理開發庫,基本上ImageMagick能夠支持的圖片格式和處理方式都能夠處理。官網
Apache Batik:在Java應用中程序以SVG格式顯示、生成及處理圖像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模塊,可以集成使用也可以單獨使用,還可以擴展自定義的SVG標簽。官網
Genson:強大且易於使用的Java到JSON轉換開發庫。官網
Gson:谷歌官方推出的JSON處理庫,支持在對象與JSON之間雙向序列化,性能良好且可以實時調用。官網
Jackson:與GSON類似,在頻繁使用時性能更佳。官網
LoganSquare:基於Jackson流式API,提供對JSON解析和序列化。比GSON與Jackson組合方式效果更好。官網
Fastjson:一個Java語言編寫的高性能功能完善的JSON庫。官網
Kyro:快速、高效、自動化的Java對象序列化和克隆庫。官網
JDK 9:JDK 9的早期訪問版本。官網
OpenJDK:JDK開源實現。官網
Scala:融合了面向對象和函數式編程思想的靜態類型編程語言。官網
Groovy:類型可選(Optionally typed)的動態語言,支持靜態類型和靜態編譯。目前是一個Apache孵化器項目。官網
Clojure:可看做現代版Lisp的動態類型語言。官網
Ceylon:RedHat開發的面向對象靜態類型編程語言。官網
Kotlin:JetBrain針對JVM、安卓和瀏覽器提供的靜態類型編程語言。官網
Xtend:一種靜態編程語言,能夠將其代碼轉換為簡潔高效的Java代碼,並基於JVM運行。官網
Apache Log4j 2:使用強大的插件和配置架構進行完全重寫。官網
kibana:分析及可視化日誌文件。官網
Logback:強健的日期開發庫,通過Groovy提供很多有趣的選項。官網
logstash:日誌文件管理工具。官網
Metrics:通過JMX或HTTP發布參數,並且支持存儲到資料庫。官網
SLF4J:日誌抽象層,需要與具體的實現配合使用。官網
Apache Flink:快速、可靠的大規模數據處理引擎。官網
Apache Hadoop:在商用硬體集群上用來進行大規模數據存儲的開源軟體框架。官網
Apache Mahout:專注協同過濾、聚類和分類的可擴展演算法。官網
Apache Spark:開源數據分析集群計算框架。官網
DeepDive:從非結構化數據建立結構化信息並集成到已有資料庫的工具。官網
Deeplearning4j:分布式多線程深度學習開發庫。官網
H2O:用作大數據統計的分析引擎。官網
Weka:用作數據挖掘的演算法集合,包括從預處理到可視化的各個層次。官網
QuickML:高效機器學習庫。官網、GitHub
Aeron:高效可擴展的單播、多播消息傳遞工具。官網
Apache ActiveMQ:實現JMS的開源消息代理(broker),可將同步通訊轉為非同步通訊。官網
Apache Camel:通過企業級整合模式(Enterprise Integration Pattern EIP)將不同的消息傳輸API整合在一起。官網
Apache Kafka:高吞吐量分布式消息系統。官網
Hermes:快速、可靠的消息代理(Broker),基於Kafka構建。官網
JBoss HornetQ:清晰、准確、模塊化,可以方便嵌入的消息工具。官網
JeroMQ:ZeroMQ的純Java實現。官網
Smack:跨平台XMPP客戶端函數庫。官網
Openfire:是開源的、基於XMPP、採用Java編程語言開發的實時協作伺服器。 Openfire安裝和使用都非常簡單,並可利用Web界面進行管理。官網GitHub
Spark:是一個開源,跨平台IM客戶端。它的特性支持集組聊天,電話集成和強大安全性能。如果企業內部部署IM使用Openfire+Spark是最佳的組合。官網GitHub
Tigase: 是一個輕量級的可伸縮的 Jabber/XMPP 伺服器。無需其他第三方庫支持,可以處理非常高的復雜和大量的用戶數,可以根據需要進行水平擴展。官網
Design Patterns:實現並解釋了最常見的設計模式。官網
Jimfs:內存文件系統。官網
Lanterna:類似curses的簡單console文本GUI函數庫。官網
LightAdmin:可插入式CRUD UI函數庫,可用來快速應用開發。官網
OpenRefine:用來處理混亂數據的工具,包括清理、轉換、使用Web Service進行擴展並將其關聯到資料庫。官網
RoboVM:Java編寫原生iOS應用。官網
Quartz:強大的任務調度庫.官網
AppDynamics:性能監測商業工具。官網
JavaMelody:性能監測和分析工具。官網
Kamon:Kamon用來監測在JVM上運行的應用程序。官網
New Relic:性能監測商業工具。官網
SPM:支持對JVM應用程序進行分布式事務追蹤的性能監測商業工具。官網
Takipi:產品運行時錯誤監測及調試商業工具。官網
JNA:不使用JNI就可以使用原生開發庫。此外,還為常見系統函數提供了介面。官網
Apache OpenNLP:處理類似分詞等常見任務的工具。官網
CoreNLP:斯坦佛CoreNLP提供了一組基礎工具,可以處理類似標簽、實體名識別和情感分析這樣的任務。官網
LingPipe:一組可以處理各種任務的工具集,支持POS標簽、情感分析等。官網
Mallet:統計學自然語言處理、文檔分類、聚類、主題建模等。官網
Async Http Client:非同步HTTP和WebSocket客戶端函數庫。官網
Grizzly:NIO框架,在Glassfish中作為網路層使用。官網
Netty:構建高性能網路應用程序開發框架。官網
OkHttp:一個Android和Java應用的HTTP+SPDY客戶端。官網
Undertow:基於NIO實現了阻塞和非阻塞API的Web伺服器,在WildFly中作為網路層使用。官網
Ebean:支持快速數據訪問和編碼的ORM框架。官網
EclipseLink:支持許多持久化標准,JPA、JAXB、JCA和SDO。官網
Hibernate:廣泛使用、強健的持久化框架。Hibernate的技術社區非常活躍。官網
MyBatis:帶有存儲過程或者SQL語句的耦合對象(Couples object)。官網
OrmLite:輕量級開發包,免除了其它ORM產品中的復雜性和開銷。官網
Nutz:另一個SSH。官網,Github
JFinal:JAVA WEB + ORM框架。官網,Github
Apache FOP:從XSL-FO創建PDF。官網
Apache PDFBox:用來創建和操作PDF的工具集。官網
DynamicReports:JasperReports的精簡版。官網
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官網
iText:一個易於使用的PDF函數庫,用來編程創建PDF文件。注意,用於商業用途時需要許可證。官網
JasperReports:一個復雜的報表引擎。官網
jHiccup:提供平台中JVM暫停的日誌和記錄。官網
JMH:JVM基準測試工具。官網
JProfiler:商業分析器。官網
LatencyUtils:測量和報告延遲的工具。官網
VisualVM:對運行中的應用程序信息提供了可視化界面。官網
YourKit Java Profiler:商業分析器。官網
Reactive Streams:非同步流處理標准,支持非阻塞式反向壓力(backpressure)。官網
Reactor:構建響應式快速數據(fast-data)應用程序的開發庫。官網
RxJava:通過JVM可觀察序列(observable sequence)構建非同步和基於事件的程序。官網
Dropwizard:偏向於自己使用的Web框架。用來構建Web應用程序,使用了Jetty、Jackson、Jersey和Metrics。官網
Feign:受Retrofit、JAXRS-2.0和WebSocket啟發的HTTP客戶端連接器(binder)。官網
Jersey:JAX-RS參考實現。官網
RESTEasy:經過JAX-RS規范完全認證的可移植實現。官網
RestExpress:一個Java類型安全的REST客戶端。官網
RestX:基於註解處理和編譯時源碼生成的框架。官網
Retrofit:類型安全的REST客戶端。官網
Spark:受到Sinatra啟發的Java REST框架。官網
Swagger:Swagger是一個規范且完整的框架,提供描述、生產、消費和可視化RESTful Web Service。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
DataMelt:用於科學計算、數據分析及數據可視化的開發環境。官網
JGraphT:支持數學圖論對象和演算法的圖形庫。官網
JScience:用來進行科學測量和單位的一組類。官網
Apache Solr:一個完全的企業搜索引擎。為高吞吐量通信進行了優化。官網
Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web介面和無schema的JSON文檔。官網
Apache Lucene:是一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網
Apache Shiro:執行認證、授權、加密和會話管理。官網
Bouncy Castle,涵蓋了從基礎的幫助函數到PGP/SMIME操作。官網:多途加密開發庫。支持JCA提供者(JCA provider)
Cryptomator:在雲上進行客戶端跨平台透明加密。官網
Keycloak:為瀏覽器應用和RESTful Web Service集成SSO和IDM。目前還處於beta版本,但是看起來非常有前途。官網
PicketLink:PicketLink是一個針對Java應用進行安全和身份認證管理的大型項目(Umbrella Project)。官網
FlatBuffers:高效利用內存的序列化函數庫,無需解包和解析即可高效訪問序列化數據。官網
Kryo:快速、高效的對象圖形序列化框架。官網
FST:提供兼容JDK的高性能對象圖形序列化。官網
MessagePack:一種高效的二進制序列化格式。官網
Apache Tomcat:針對Servlet和JSP的應用伺服器,健壯性好且適用性強。官網
Apache TomEE:Tomcat加Java EE。官網
Jetty:輕量級、小巧的應用伺服器,通常會嵌入到項目中。官網
WebSphere Liberty:輕量級、模塊化應用伺服器,由IBM開發。官網
WildFly:之前被稱作JBoss,由Red Hat開發。支持很多Java EE功能。官網
Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。官網
FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關系。官網
Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴展(semantic Mustache)。官網
Thymeleaf:旨在替換JSP,支持XML文件的工具。官網
Apache JMeter:功能性測試和性能評測。官網
Arquillian:集成測試和功能行測試平台,集成Java EE容器。官網
AssertJ:支持流式斷言提高測試的可讀性。官網
Awaitility:用來同步非同步操作的DSL。官網
Cucumber:BDD測試框架。官網
Gatling:設計為易於使用、可維護的和高性能負載測試工具。官網
Hamcrest:可用來靈活創建意圖(intent)表達式的匹配器。官網
JMockit:用來模擬靜態、final方法等。官網
JUnit:通用測試框架。官網
Mockito:在自動化單元測試中創建測試對象,為TDD或BDD提供支持。官網
PowerMock: 支持模擬靜態方法、構造函數、final類和方法、私有方法以及移除靜態初始化器的模擬工具。官網
REST Assured:為REST/HTTP服務提供方便測試的Java DSL。官網
Selenide:為Selenium提供精準的周邊API,用來編寫穩定且可讀的UI測試。官網
Selenium:為Web應用程序提供可移植軟體測試框架。官網
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官網兼容JUnit框架,支持衍生的Groovy范的語言。
TestNG:測試框架。官網
Truth:Google的斷言和命題(proposition)框架。官網
Unitils:模塊化測試函數庫,支持單元測試和集成測試。官網
WireMock:Web Service測試樁(Stub)和模擬函數。官網
Apache Commons:提供各種用途的函數,比如配置、驗證、集合、文件上傳或XML處理等。官網
args4j:命令行參數解析器。官網
CRaSH:為運行進行提供CLI。官網
Gephi:可視化跨平台網路圖形化操作程序。官網
Guava:集合、緩存、支持基本類型、並發函數庫、通用註解、字元串處理、I/O等。官網
JADE:構建、調試多租戶系統的框架和環境。官網
javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。官網
JCommander:命令行參數解析器。官網
Protégé:提供存在論(ontology)編輯器以及構建知識系統的框架。官網
Apache Nutch:可用於生產環境的高度可擴展、可伸縮的網路爬蟲。官網
Crawler4j:簡單的輕量級網路爬蟲。官網
JSoup:刮取、解析、操作和清理HTML。官網
Apache Tapestry:基於組件的框架,使用Java創建動態、強健的、高度可擴展的Web應用程序。官網
Apache Wicket:基於組件的Web應用框架,與Tapestry類似帶有狀態顯示GUI。官網
Google Web Toolkit:一組Web開發工具集,包含在客戶端將Java代碼轉為JavaScript的編譯器、XML解析器、RCP官網API、JUnit集成、國際化支持和GUI控制項。
Grails:Groovy框架,旨在提供一個高效開發環境,使用約定而非配置、沒有XML並支持混入(mixin)。官網
Ninja:Java全棧Web開發框架。非常穩固、快速和高效。官網
Pippo:小型、高度模塊化的類Sinatra框架。官網
Play:使用約定而非配置,支持代碼熱載入並在瀏覽器中顯示錯誤。官網
PrimeFaces:JSF框架,提供免費和帶支持的商業版本。包括若干前端組件。官網
Ratpack:一組Java開發函數庫,用於構建快速、高效、可擴展且測試完備的HTTP應用程序。官網
Spring Boot:微框架,簡化了Spring新程序的開發過程。官網
Spring:旨在簡化Java EE的開發過程,提供依賴注入相關組件並支持面向切面編程。官網
Vaadin:基於GWT構建的事件驅動框架。使用服務端架構,客戶端使用Ajax。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
jBPM:非常靈活的業務流程管理框架,致力於構建開發與業務分析人員之間的橋梁。官網
Activity:輕量級工作流和業務流程管理框架。官網github
位元組碼操作
編程方式操作位元組碼的開發庫。
集群管理
在集群內動態管理應用程序的框架。
代碼分析
測量代碼指標和質量工具。
編譯器生成工具
用來創建解析器、解釋器或編譯器的框架。
外部配置工具
支持外部配置的開發庫。
約束滿足問題求解程序
幫助解決約束滿足問題的開發庫。
持續集成
CSV解析
簡化CSV數據讀寫的框架與開發庫
資料庫
簡化資料庫交互的相關工具。
幫實現依賴翻轉範式的開發庫。官網
開發流程增強工具
從最基本的層面增強開發流程。
分布式應用
用來編寫分布式容錯應用的開發庫和框架。
分布式資料庫
對應用程序而言,在分布式系統中的資料庫看起來就像是只有一個數據源。
發布
以本機格式發布應用程序的工具。
文檔處理工具
處理Office文檔的開發庫。
函數式編程
函數式編程支持庫。
游戲開發
游戲開發框架。
GUI
現代圖形化用戶界面開發庫。
高性能計算
涵蓋了從集合到特定開發庫的高性能計算相關工具。
IDE
簡化開發的集成開發環境。
JSON
簡化JSON處理的開發庫。
JVM與JDK
目前的JVM和JDK實現。
基於JVM的語言
除Java外,可以用來編寫JVM應用程序的編程語言。
日誌
記錄應用程序行為日誌的開發庫。
機器學習
提供具體統計演算法的工具。其演算法可從數據中學習。
消息傳遞
在客戶端之間進行消息傳遞,確保協議獨立性的工具。
雜項
未分類其它資源。
應用監控工具
監控生產環境中應用程序的工具。
原生開發庫
用來進行特定平台開發的原生開發庫。
自然語言處理
用來專門處理文本的函數庫。
網路
網路編程函數庫。
ORM
處理對象持久化的API。
用來幫助創建PDF文件的資源。
性能分析
性能分析、性能剖析及基準測試工具。
響應式開發庫
用來開發響應式應用程序的開發庫。
REST框架
用來創建RESTful 服務的框架。
科學計算與分析
用於科學計算和分析的函數庫。
搜索引擎
文檔索引引擎,用於搜索和分析。
安全
用於處理安全、認證、授權或會話管理的函數庫。
序列化
用來高效處理序列化的函數庫。
應用伺服器
用來部署應用程序的伺服器。
模板引擎
在模板中替換表達式的工具。
測試
測試內容從對象到介面,涵蓋性能測試和基準測試工具。
通用工具庫
通用工具類函數庫。
網路爬蟲
用於分析網站內容的函數庫。
Web框架
用於處理Web應用程序不同層次間通訊的框架。
業務流程管理套件
流程驅動的軟體系統構建。
資源
社區
㈩ jetty9莫名的啟動不了了,該怎麼處理
電腦藍屏有很多方面的影響因素: 一、屏幕顯示系統忙,請按任意鍵繼續…… 1、虛擬內存不足造成系統多任務運算錯誤 虛擬內存是WINDOWS系統所特有的一種解決系統資源不足的方法,其一般要求主引導區的硬碟剩餘空間是其物理內存的2-3倍。而一些發燒友為了充分利用空間,將自己的硬碟塞到滿滿的,忘記了WINDOWS這個苛刻的要求。結果導致虛擬內存因硬碟空間不足而出現運算錯誤,所以就出現藍屏。要解決這個問題好簡單,盡量不要把硬碟塞得滿滿的,要經常刪除一些系統產生的臨時文件、交換文件,從而可以釋放空間。或可以手動配置虛擬內存,選擇高級,把虛擬內存的默認地址,轉到其他的邏輯盤下。這樣就可以避免了因虛擬內存不足而引起的藍屏。 2、CPU超頻導致運算錯誤 超頻對於發燒友來說是常事,所以由超頻所引起的各種故障也就在所難免了。超頻,就本身而言就是在原有的基礎上完成更高的性能,但由於進行了超載運算,造成其內部運算過多,使CPU過熱,從而導致系統運算錯誤。有些CPU的超頻性能比較好,如INTEL的賽揚處理器和AMD-K6-2處理器還算較好的,但有時也會出現一些莫名其妙的錯誤。(例如:我曾試過將INTEL賽揚300A,在超頻到450時,軟碟機在沒有接受命令時,進行讀盤操作)。INTEL的低於200的CPU以及AMD-K5的超頻能力就不是那麼好。建議高檔的CPU要超頻時,那麼散熱工作一定要做好,最好裝一個大的風扇,再加上一些硅膠之類的散熱材料。至於一些低檔的CPU我建議你就最好不要超頻了,免得超頻達不到預想的效果反而經常出現藍屏影響計算機的正常速度。 二、內存條的互不兼容或損壞引起運算錯誤 這時個最直觀的現象,因為這個現象往往在一開機的時候就可以見到,根本啟動不了計算機,畫面提示出內存有問題,問你是否要繼續。造成這種錯誤是物理上的損壞內存或者內存與其它硬體不兼容所致。這時候只有換過另外的內存了。 三、光碟機在讀盤時被非正常打開所至 這個現象是在光碟機正在讀取數據時,由於被誤操作打開而導致出現藍屏。這個問題不影響系統正常動作,只要再彈入光碟或按ESC鍵就可以。 以上是我在維護計算機中碰到導致藍屏的幾種原因,或許還會有其他一些莫名其妙的問題導致計算機出現藍屏。不管怎樣,遇到這類問題後,應先仔細分析問題發生的原因,然後再著手解決。 四、硬體剩餘空間太小或碎片太多 由於Win9X運行時需要用硬碟作虛擬內存,這就要求硬碟必須保留一定的自由空間以保證程序的正常運行。一般而言,最低應保證100MB以上的空間,否則出現「藍屏」很可能與硬碟剩餘空間太小有關。另外,硬碟的碎片太多,也容易導致「藍屏」的出現。因此,每隔一段時間進行一次碎片整理是必要的。 五、系統硬體沖突 這種現象導致「藍屏」也比較常見。實踐中經常遇到的是音效卡或顯示卡的設置沖突。在「控制面板」→「系統」→「設備管理」中檢查是否存在帶有黃色問號或感嘆號的設備,如存在可試著先將其刪除,並重新啟動電腦,由Win9X自動調整,一般可以解決問題。若還不行,可手工進行調整或升級相應的驅動程序。 "藍屏"的軟體原因及解決 與硬體密切聯系的是軟體,有時軟體在"藍屏"現象中也"功不可沒",載入了過多的程序、注冊表有問題、軟硬不兼容、驅動程序有問題,相對於硬體原因來說要不易察覺些,可要多加註意......... 一、啟動時載入程序過多 不要在啟動時載入過多的應用程序(尤其是你的內存小於64MB),以免使系統資源消耗殆盡。正常情況下,Win9X啟動後系統資源應不低於90%。最好維持在90%以上,若啟動後未運行任何程序就低於70%,就需要卸掉一部分應用程序,否則就可能出現「藍屏」。 二、應用程序存在著BUG 有些應用程序設計上存在著缺陷或錯誤,運行時有可能與Win9X發生沖突或爭奪資源,造成Win9X無法為其分配內存地址或遇到其保護性錯誤。這種BUG可能是無法預知的,免費軟體最為常見。另外,由於一些用戶還在使用盜版軟體(包括盜版Win9X),這些盜版軟體在解密過程中會破壞和丟失部分源代碼,使軟體十分不穩定,不可靠,也常常導致「藍屏」。 三、遭到不明的程序或病毒攻擊所至 這個現象只要是平時我們在上網的時候遇到的,當我們在沖浪的時候,特別是進到一些BBS站時,可能暴露了自己的IP,被"黑客"用一些軟體攻擊所至。對互這種情況最好就是在自己的計算機上安裝一些防禦軟體。再有就是登錄BBS要進行安全設置,隱藏自己IP。 四、版本沖突 有些應用程序需調用特定版本的動態鏈接庫DLL,如果在安裝軟體時,舊版本的DLL覆蓋了新版本的DLL,或者刪除應用程序時,誤刪了有用的DLL文件,就可能使上述調用失敗,從而出現「藍屏」。不妨重新安裝試一試。 五、注冊表中存在錯誤或損壞 很多情況下這是出現「藍屏」的主要原因。注冊表保存著Win9X的硬體配置、應用程序設置和用戶資料等重要數據,如果注冊表出現錯誤或被損壞,就很可能出現「藍屏」。如果你的電腦經常出現「藍屏」,你首先就應考慮是注冊表出現了問題,應及時對其檢測、修復,避免更大的損失。 六、軟硬體不兼容 新技術、新硬體的發展很快,如果安裝了新的硬體常常出現「藍屏」,那多半與主板的BIOS或驅動程序太舊有關,以致不能很好支持硬體。如果你的主板支持BIOS升級, 應盡快升級到最新版本或安裝最新的設備驅動程序。