锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Barcode4J is a flexible generator for barcodes written in Java and available under the Apache License v2.0. Features: Extensions for Apache FOP, Xalan-J and SAXON, Servlet, command-line interface, output to SVG, EPS, Java2D/AWT and bitmaps.
鐩稿叧鏂囩珷: http://www.javaresearch.org/article/71081.htm Barcode鍔熻兘璇存槑 鏉″艦鐮乥arcode4j鐨勪嬌鐢?/a>
2007-06-18
鍓嶅嚑澶╄佸ぇ璇磋鎴戝紕涓嬫潯褰㈢爜錛岀劧鍚庢垜灝變笂緗慻oogle浜嗕竴涓嬶紝鐢ㄧ殑姣旇緝澶氱殑鏄痓arbecue鍜宐arcode4j銆?
鎴戝厛浣跨敤鐨勬槸barbecue錛屾潯褰㈢爜鏄彲浠ユ樉紺哄嚭鏉ワ紝鍙槸涓嬮潰鐨勫搴旀暟瀛楀嵈涓嶈兘鏄劇ず錛屽綋鐒跺彲浠ヨ嚜宸辨墜鍔ㄥ姞涓婂幓錛屼笉榪囬偅灝變笉鏄竴寮犲浘鐗囬噷闈㈢殑浜嗭紝鎺掔増涔熶笉鏄緢濂界湅銆傚洜姝ゆ垜灝辮瘯浜嗕竴涓媌arcode4j錛屾晥鏋滄尯濂界殑錛屾墍浠ユ妸浣跨敤鏂規硶璐翠笂鏉ワ紝緇欏垰鎺ヨЕjava鐨勬湅鍙嬩滑涓鐐瑰熼壌銆?
1銆?google鎴栬呮憜娓′竴涓媌arcode4j瑕佺敤鐨勪笢涓滐紝涓嬭澆鍘嬬緝鍖卋arcode4j-2.0alpha2-bin.zip鍜宐arcode4j-2.0alpha2-src.zip銆?
2銆?瑙e帇barcode4j-2.0alpha2-bin.zip榪欎釜鍖咃紝鍦╞uild鐩綍涓嬫湁barcode4j.jar錛屽湪lib鐩綍涓嬫湁avalon-framework-4.2.0.jar錛?灝哹arcode4j.jar鍜宎valon-framework-4.2.0.jar娣誨姞鍒伴」鐩殑lib涓紝鍒鋒柊宸ョ▼錛岀劧鍚庡湪欏圭洰閰嶇疆涓皢榪欎袱涓猨ar鍖呮坊鍔犲埌classpath閲岄潰鍘匯?
3銆?瑙e帇灝哹arcode4j-2.0alpha2-src.zip錛屽皢src\java\org\krysalis\barcode4j\servlet鐩綍涓嬬殑BarcodeServlet.java綾葷殑浠g爜鎷峰嚭鏉ワ紝淇敼榛樿鐨勫浘鐗囨樉紺烘柟寮忥紝BarcodeServlet.java絎?68琛岀殑榛樿鍥劇墖鏄劇ず鏍煎紡鏀規垚jpeg錛堝洜涓轟笉鏄墍鏈夌殑嫻忚鍣ㄩ兘鏀寔svg鏍煎紡錛屼篃涓嶆槸鎵鏈夌殑嫻忚鑰呴兘鎰挎剰緇欒嚜宸辯殑嫻忚鍣ㄥ姞涓涓繖鏍風殑鎻掍歡錛?
4銆?灝嗕互涓嬭繖孌祍ervlet閰嶇疆鍦╳eb.xml涓?
<servlet>
<servlet-name>BarcodeServlet</servlet-name>
<servlet-class>com.yourname.BarcodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BarcodeServlet</servlet-name>
<url-pattern>/barcode</url-pattern>
</servlet-mapping>
4銆?鍦ㄩ〉闈腑娣誨姞<img src="<%=request.getContextPath() %>/barcode?msg=12345678" height="50px" width=130px/>
5銆?鏌ョ湅璇ラ〉闈㈠氨鍙互鍙戠幇鏉″艦鐮佷負鈥?2345678鈥濈殑鍥劇墖浜嗭紝褰撶劧浜嗗浘鐗囧ぇ灝忓氨鑷繁璁劇疆浜嗐?
鍛靛懙錛岃櫧鐒舵槸寰堢畝鍗曠殑涓滆タ錛屼絾鏄笇鏈涜兘瀵歸渶瑕佺殑鏈嬪弸鏈夋墍甯姪銆?
Barcode鍔熻兘璇存槑
FengShen_Xia 鏁寸悊 鏇存柊錛?007-05-31 13:45:48 鐗堟湰: 1.0
Barcode1.0鍔熻兘璇存槑
涓銆丅arcode欏圭洰璇存槑錛?br> 鍒╃敤Barcode4j寮婧愰」鐩紑鍙戦潰鍚慾ava bs鐨勬潯褰㈢爜鎵撳嵃鍔熻兘銆?br>浜屻丅arcode欏圭洰鍔熻兘錛?br> 1銆佸埄鐢˙arcode4j欏圭洰瀹炵幇8縐嶇被鍨嬫潯褰㈢爜銆?br> 2銆侀氳繃url璋冪敤瀹炵幇web欏甸潰鏄劇ず鏉″艦鐮併?br> 3銆侀氳繃xml鏂囦歡閰嶇疆瀹炵幇棰勫畾涔夋潯鐮佺被鍨嬨?br> 4銆佸疄鐜版墍瑙佹墍寰楃殑鏉″艦鐮佽皟璇曘侀厤緗姛鑳姐?br>涓夈丅arcode瀹炵幇姝ラ
1銆佸皢barcode4j.jar銆乥arcode.jar澶嶅埗鍒癨webRoot\WEB-INF\lib鐩綍涓嬨?br> 2銆佸湪\webRoot\WEB-INF\web.xml涓坊鍔燘arCodeServlet
<servlet>
<servlet-name>barcode-invoker</servlet-name>
<servlet-class>barcode.servlet.BarCodeServlet</servlet-class>
<init-param>
<param-name>conf</param-name>
<param-value>/conf/barcode_conf.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>barcode-invoker</servlet-name>
<url-pattern>*.barcode</url-pattern>
</servlet-mapping>
BarCodeServlet璇存槑錛?br>1銆乧onf鍙傛暟鐢ㄦ潵璁劇疆棰勫畾涔夋潯鐮佺被鍨嬶紝涓嶈緗病鏈夐瀹氫箟綾誨瀷銆?br>2銆?conf/barcode_conf.xml涓洪瀹氫箟鏉$爜綾誨瀷閰嶇疆鏂囦歡銆傛枃浠舵斁鍦╘webRoot\WEB-INF\classes\conf\鐩綍涓嬨?br>3銆?.barcode涓鴻鏄劇ず鏉$爜鐨剈rl璇嗗埆銆?br>3銆佸湪web欏甸潰涓皟鐢╱rl銆?br>妗堜緥:
1銆?lt;img src=鈥?CODE39.barcode?code=123456789鈥?gt;
2銆?lt;img src=鈥?_a1.barcode?code=123456789鈥?gt;
URL璇存槑錛?br>[綾誨瀷*]. barcode?code**=...&鍏朵粬鍙傛暟***
*錛氱被鍨嬪垎鍥哄畾綾誨瀷錛?0縐嶏級鍜岄瀹氫箟綾誨瀷錛堢被鍨嬪墠鍔燺錛夈?br>**錛歝ode鏄繀瑕佸弬鏁般?br>***錛氬叾浠栧弬鏁扮敤鏉ヤ赴瀵屾潯鐮佹樉紺烘晥鏋溿?br>鍥涖佸弬鏁拌鏄庯細
鍚嶇О 綾誨瀷 榛樿鍊?nbsp; 璇存槑
瑙f瀽搴? dpi int 150 鍊艱秺澶ф潯鐮佽秺闀匡紝鍒嗚鯨鐜囪秺楂樸?br>鐣欑┖鐧?nbsp; quietZone boolean false 鏉$爜涓ょ鏄惁鍔犵┖鐧?br>鍙栧弽 antiAlias boolean false 鏉$爜鍐呭彇鍙嶏紝鍏蜂綋鍔熻兘涓嶈
鍥劇墖鍙嶈漿 orientation int 0 鏃嬭漿鏉$爜,鍙変負[0, 90, 180, 270, -90, -180 ,-270]
楂樺害 barHeight double 15 鏉$爜鏄劇ず楂樺害錛屼負姣斾緥鏁?br>瀛椾綋鏄劇ず hrp int 2 瀛椾綋鏄劇ず浣嶇疆錛屼負0鏃跺欏睆钄絝ontName銆乫ontSize鍙傛暟銆?br>0=HRP_NONE
1=HRP_TOP
2=HRP_BOTTOM
瀛椾綋鍚嶇О fontName String Helvetica 璺熼殢鏉$爜鐨勫瓧浣撶被鍨嬶紝姣斿錛氬畫浣撱侀粦浣撶瓑絳?br>瀛椾綋澶у皬 fontSize double 2.8 璺熼殢鏉$爜鐨勫瓧浣撳ぇ灝忥紝涓烘瘮渚嬫暟
浜斻亁ml鏂囦歡璇存槑錛?br><?xml version="1.0" encoding="GBK"?>
<barcode_conf>
<a3 fontSize="4" fontName="榛戜綋" hrp="0" barHeight="23" orientation="0" antiAlias="false" quietZone="false" dpi="200" type="CODE39"/>
<a2 type="CODE39"/>
<a1 type="CODE39"/>
</barcode_conf>
妗堜緥涓畾涔変簡a1銆乤2銆乤3涓変釜棰勫畾涔夌被鍨嬨傚彲浠ヨ緗?縐嶅弬鏁幫紝鍏朵腑
type鏄繀瑕佸弬鏁板茍瀵瑰簲10縐嶅熀鏈潯鐮佺被鍨嬨?br>娉ㄦ剰URL銆佸弬鏁板拰xml鏂囦歡node灞炴х殑澶у皬鍐?
鍏佹潯鐮佽皟璇曠▼搴忓姛鑳借鏄庯細
1銆佹樉紺哄浘鐗囷細鏍規嵁濉啓鐨?0涓弬鏁板姩鎬佹樉紺烘潯鐮併傛墦鍗頒唬鐮佸拰綾誨瀷涓哄繀閫夋潯浠躲?br>2銆佷繚瀛樿緗細瀵硅皟璇曠殑鏉$爜鏍峰紡姣旇緝婊℃剰鍚庯紝璧愪簣緙栧彿鍚庝繚瀛樺湪涓嬮潰鍒楄〃閲屼緵浠ュ悗璋冪敤鏄劇ず鎴栫敓鎴愰厤緗傛敞鎰忕紪鍙蜂笉鑳介噸澶嶃?br>3銆佸垪琛ㄦ樉紺猴細鍙互灝嗕繚瀛樼殑閰嶇疆閲嶆柊鏄劇ず銆?br>4銆佸垪琛ㄥ垹闄わ細鍒犻櫎璇ヨ閰嶇疆銆?br>5銆佹樉紺哄叏閮細灝嗕繚瀛樼殑鎵鏈夋潯鐮侀厤緗樉紺哄嚭鏉ワ紝浠ヤ緵鎵撳嵃鏍¢獙浣跨敤銆?br>6銆佹樉紺洪厤緗細灝嗕繚瀛樼殑鎵鏈夋潯鐮侀厤緗樉紺轟負棰勫畾涔墄ml鏍煎紡銆?br>7銆佽祫婧愪笅杞斤細涓篵s欏圭洰闆嗘垚barcode鎻愪緵璧勬簮鏍蜂緥涓嬭澆銆?br>8銆佸鍒禪RL錛氬皢褰撳墠鏄劇ず鏉$爜鐨剈rl璺緞澶嶅埗鐨勭郴緇熺矘璐存澘涓婏紙only IE錛夈?br>9銆佸師濮嬫瘮渚嬶細灝嗘潯鐮佸浘褰㈢緝鏀炬瘮渚嬫仮澶嶅埌100%錛坥nly IE錛夈?br>10銆佹潯鐮佺緝鏀撅細鍦ㄩ変腑鏉$爜緙╂斁妗嗙殑鎯呭喌涓嬶紝鐐瑰嚮鏉$爜鍥劇墖鍚庡彲浠ョ敤榧犳爣婊氳疆瀹炵幇20%-500%鍥劇墖緙╂斁鍔熻兘錛坥nly IE錛夈?br>浠ヤ笂鍔熻兘鍦↖E銆乫irefox涓嬭皟璇曟垚鍔熴?br>涓冦佸浘渚?br>綾誨瀷 Barcode type PNG graphic
CODE39 Code 39
CODE128 Code 128
INT2OF5 Interleaved 2 of 5
CODABAR Codabar
UPCA UPC-A
UPCE UPC-E
EAN13 EAN-13
EAN8 EAN-8
PDF417 PDF417
DATAMATRIX DataMatrix
涓嶈繃, 鍙堟湁浜烘寚鍑?CGLIB 澶嶅埗 Bean 閫熷害鏇村揩, 鏁堢巼鏇撮珮(鐩墠灝氭湭鍋氱浉鍏蟲祴璇?!
static BeanCopier copy = BeanCopier.create(Bean.class, Bean2.class, false);
void beanCopies(Object source , Object target)锝?
copy.copy(source, target, null);
}
鍏堣涓涓嬫惌寤烘祴璇旻TP鏈嶅姟鍣? 涓鑸琖indows涓嬬敤鐨勫鐨勬湁Server-U(鏀惰垂)絳? 寮婧愮殑鏈塅ileZilla FTP Server(緇忔祴璇曡矊浼兼棤娉曚笂浼犺秴榪?00MB鐨勬枃浠? 涓嶇煡閬撳摢閲屾湁璁劇疆, 鏈鍚庡惁瀹氫簡), 鐩墠浣跨敤鐨勬槸涓嬈懼厤璐圭豢鑹插皬宸х殑FTP鏈嶅姟鍣ㄦ潵鍋氭祴璇? TYPSoft FTP Server. 涓嬭澆鍚庣洿鎺ヨВ鍘嬬緝鍗沖彲榪愯, 涓嶈繃濡傛灉瑕佹樉紺轟腑鏂囩晫闈㈢殑璇? 璇蜂慨鏀筩onfig.ini:
LangFile=chineses
涔嬪悗寤虹珛鐢ㄦ埛榪涜嫻嬭瘯灝卞彲浠ヤ簡. 鐣岄潰濡備笅鎵紺?
涓鑸殑瀹㈡埛绔繛鎺ヤ腑鏂嘩indows涓嬬殑FTP鏈嶅姟鍣? 榛樿緙栫爜鏄疓B2312, 鍥犳涓嶅姞璁劇疆鐨勮瘽寰堝鏄撴棤娉曚笂浼犲拰涓嬭澆涓枃闄勪歡. 緗戜笂鏈変竴浜涗唬鐮佺墖孌佃璁篔akarta Commons Net, 浣嗘槸鐪嬭搗鏉ユ紜殑瑙e喅姝ら棶棰樼殑浠g爜涓嶅. 鍏跺疄FtpClient綾誨凡緇忔彁渚涗簡璁劇疆鐨勬柟娉? 璋冪敤:
ftpClient.setControlEncoding("gb2312");
鍗沖彲, 榪欐牱鍦ㄦ墦寮Socket鐨勬椂鍊欓兘浼氭墠鐢ㄦ紜殑reader鍜寃riter浜? 鐩稿叧鐨勬簮鐮佺墖孌靛涓?
/** * Sets the character encoding used by the FTP control connection. * Some FTP servers require that commands be issued in a non-ASCII * encoding like UTF-8 so that filenames with multi-byte character * representations (e.g, Big 8) can be specified. * * @param encoding The new character encoding for the control connection. */ public void setControlEncoding(String encoding) { _controlEncoding = encoding; } /** * @return The character encoding used to communicate over the * control connection. */ public String getControlEncoding() { return _controlEncoding; }
涓嬮潰瑕佽鐨勬槸edtftpj, 鍘誨叾瀹樻柟緗戠珯涓嬭澆寰楀埌ZIP, 瑙e帇緙╁悗鍗沖彲榪愯鍏惰嚜甯︾殑渚嬪瓙, 涓嶈繃榛樿娓呯┖涓嬩笉鏀寔姹夊瓧. 渚嬪瓙鍙婂帇緙╁寘鍐呭濡備笅鍥炬墍紺?
鍙鏀寔鐨勫姛鑳借繕鏄尯鍏ㄩ潰鐨? 瑕佺湅鐨勪緥瀛愬氨鏄痷pload_download_and_delete_a_file, 鐜板湪鏂板緩涓涓狫ava欏圭洰, 鎶妉ib\edtftpj.jar鍔犲叆欏圭洰鍗沖彲,鐒跺悗灝嗕緥瀛愬鍒惰繘鏉ョ紪璇戣繍琛? 濡備笅鎵紺?
import com.enterprisedt.net.ftp.FileTransferClient; import com.enterprisedt.util.debug.Level; import com.enterprisedt.util.debug.Logger; import java.io.File; public class UploadDownloadFiles { public static void main(String[] args) { // we want remote host, user name and password if (args.length < 3) { System.out .println("Usage: run remote-host username password"); System.exit(1); } // extract command-line arguments String host = args[0]; String username = args[1]; String password = args[2]; String filename = "UploadDownloadFiles.java"; // set up logger so that we get some output Logger log = Logger.getLogger(UploadDownloadFiles.class); Logger.setLevel(Level.INFO); FileTransferClient ftp = null; try { // create client log.info("Creating FTP client"); ftp = new FileTransferClient(); // set remote host ftp.setRemoteHost(host); ftp.setUserName(username); ftp.setPassword(password); // connect to the server log.info("Connecting to server " + host); ftp.connect(); log.info("Connected and logged in to server " + host); log.info("Uploading file"); ftp.uploadFile(filename, filename); log.info("File uploaded"); log.info("Downloading file"); ftp.downloadFile(filename + ".copy", filename); log.info("File downloaded"); log.info("Deleting remote file"); ftp.deleteFile(filename); log.info("Deleted remote file"); File file = new File(filename + ".copy"); file.delete(); log.info("Deleted local file copy"); // Shut down client log.info("Quitting client"); ftp.disconnect(); log.info("Example complete"); } catch (Exception e) { e.printStackTrace(); } } }
import com.enterprisedt.net.ftp.FileTransferClient; /** * 鍙互璁劇疆榪炴帴鏃剁殑瀛楃闆嗙殑FTP瀹㈡埛绔? * @author BeanSoft * 2008-11 */ public class SetEncodingFileTransferClient extends FileTransferClient { /** * 璁劇疆榪炴帴鏃剁殑瀛楃闆? 榛樿鍊兼槸US-ASCII. * @param controlEncoding 瀛楃闆嗗悕, 濡侴B2312絳?/span> */ public synchronized void setControlEncoding(String controlEncoding) { super.masterContext.setControlEncoding(controlEncoding); } }
鐩稿簲鐨勬祴璇曚唬鐮佹槸:
import java.io.File; import com.enterprisedt.util.debug.Level; import com.enterprisedt.util.debug.Logger; public class UploadDownloadFiles { public static void main(String[] args) { // extract command-line arguments String host = "localhost"; String username = "test"; String password = "test"; String filename = "鍥劇墖杈撳嚭.gif"; // set up logger so that we get some output Logger log = Logger.getLogger(UploadDownloadFiles.class); Logger.setLevel(Level.INFO); SetEncodingFileTransferClient ftp = null; try { // create client log.info("Creating FTP client"); ftp = new SetEncodingFileTransferClient(); // set remote host ftp.setRemoteHost(host); ftp.setUserName(username); ftp.setPassword(password); ftp.setControlEncoding("GB2312"); // connect to the server log.info("Connecting to server " + host); ftp.connect(); log.info("Connected and logged in to server " + host); log.info("Uploading file"); ftp.uploadFile(filename, filename); log.info("File uploaded"); log.info("Downloading file"); ftp.downloadFile(filename + ".copy", filename); log.info("File downloaded"); log.info("Deleting remote file"); //ftp.deleteFile(filename); log.info("Deleted remote file"); File file = new File(filename + ".copy"); // file.delete(); log.info("Deleted local file copy"); // Shut down client log.info("Quitting client"); ftp.disconnect(); log.info("Example complete"); } catch (Exception e) { e.printStackTrace(); } } }
榪愯鍚庢湇鍔″櫒鍙湅鍒版紜殑鏂囦歡鍚? 鑰屾湰鏈哄垯鍙互涓嬭澆鍒版紜殑鏂囦歡鍓湰.
杈撳嚭鏃ュ織涓?
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.203 : Creating FTP client
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.359 : Connecting to server localhost
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.546 : Connected and logged in to server localhost
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.546 : Uploading file
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.703 : File uploaded
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.703 : Downloading file
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.734 : File downloaded
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.734 : Deleting remote file
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.734 : Deleted remote file
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.734 : Deleted local file copy
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.734 : Quitting client
INFO [ftp.UploadDownloadFiles] 26 鍗佷竴鏈?2008 21:02:48.734 : Example complete
榪愯鍚庝竴鍒囨甯? 闈炲父濂? 鑰屾杞歡鍖呯殑浠樿垂鐗堟湰鍙敮鎸佺洰褰曟壒閲忎笂浼犲拰涓嬭澆(Apache Commons Net 璨屼技涓嶆敮鎸?, 褰撶劧浜? 璁稿彲璇佸氨瑕佽嚜宸辨兂鍔炴硶Crack浜?
import com.enterprisedt.net.ftp.FTPClient; import com.enterprisedt.net.ftp.pro.ProFTPClient; import com.enterprisedt.util.debug.Level; import com.enterprisedt.util.debug.Logger; import java.io.File; public class TransferMultipleFilesDirectories { public static void main(String[] args) { // we want remote host, user name and password if (args.length < 5) { System.out .println("Usage: run remote-host username password localdir remotedir"); System.exit(1); } // extract command-line arguments String host = args[0]; String username = args[1]; String password = args[2]; String localDir = args[3]; String remoteDir = args[4]; // set up logger so that we get some output Logger log = Logger.getLogger(TransferMultipleFilesDirectories.class); Logger.setLevel(Level.DEBUG); ProFTPClient ftp = null; try { // create client log.info("Creating FTP client"); ftp = new ProFTPClient(); // set remote host log.info("Setting remote host"); ftp.setRemoteHost(host); // connect to the server log.info("Connecting to server " + host); ftp.connect(); log.info("Connected to server " + host); // log in log.info("Logging in with username=" + username + " and password=" + password); ftp.login(username, password); log.info("Logged in"); log.info("Uploading directory"); ftp.mput(localDir, remoteDir, "*.html", true); log.info("Directory uploaded"); log.info("Downloading directory"); ftp.mget(localDir + ".copy", remoteDir, "*.html", true); log.info("Directory downloaded"); log.info("Deleting remote directory"); ftp.rmdir(remoteDir, true); log.info("Remote directory deleted"); // Shut down client log.info("Quitting client"); ftp.quit(); log.info("Example complete"); } catch (Exception e) { e.printStackTrace(); } } }
鑷蟲, 鎴戜滑鐨勪換鍔″凡緇忓畬鎴? 鍙互鍔犱笂瀹氭椂鍣ㄤ箣綾葷殑杞歡鎴栬呯被搴撳疄鐜板畾鏃跺悓姝?澶囦喚鏂囦歡絳夊姛鑳? 鎯寵幏鍙栨湰欏圭洰婧愪唬鐮? 璇風偣鍑?http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/java/opensource/javaftp.zip 138KB 涓嬭澆(鍗曠嚎紼嬩笅杞? 璇蜂笉瑕佺敤涓嬭澆杞歡濡傝繀闆?.
鐧誨綍錛?/p>
涓嬪浘鏄劇ず浜嗕袱涓獥鍙o紝涓涓槸Web鐨凢lash瀹㈡埛绔紝涓涓槸綰疛ava鐨勫鎴風銆?/p>
鏈鍚庢槸瀹樻柟緗戠珯鐨勬埅鍥撅細
榪戞湡,涓嶇煡閬撲綍鏁?鎶鏈漢鍛橀挓鐖辯殑寮婧愯蔣浠跺ぇ鏈惀sf.net(灝辨槸www.sourceforge.net),涓婇潰鐨勮蔣浠舵棤娉曚笅杞戒簡,鍖呮嫭JBoss, Spring, Hibernate 絳変竴緋誨垪杞歡閮芥棤娉曟洿鏂頒簡, 榪欐庝箞鍔?
絳旀鏄?
ftp://download.sourceforge.net/pub/sourceforge/
璇曡瘯鍚? 寰堟柟渚跨殑, 鍙互涓嬭澆澶ч儴鍒嗙殑杞歡(涓嶆槸100%鍙墦寮).
渚嬪 Spring 鐨勪笅杞藉湴鍧鏄?
ftp://download.sourceforge.net/pub/sourceforge/s/sp/springframework/