锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鎴戣繖閲岀敤鐨勬槸1.1.0.1錛屽茍涓旈〉闈笂灝辨湁鎺ㄨ崘鐨?/span>Eclipse3.1.1錛?/span>EMF,GEF銆傞兘涓嬭澆浜嗭紒
2.鎸夌収Eclipse瀹夎鎻掍歡鐨勬柟娉曪紝瀹夎SWT,EMF,GEF銆?/span>
3.濡傛灉涓嶅嚭鎰忓錛屽氨鍙互姝e父浣跨敤浜嗭紒
榪欓噷鏈変竴涓緩璁細鏈濂戒嬌鐢ㄧ函鐨?/span>Eclipse錛屾垜寮濮嬬敤WTP鐗堢殑錛屾庝箞閰嶇疆涔熶笉琛屻?/span>
鍙互寤虹珛Visual Class錛屼絾鏄笉鑳藉彲瑙嗗寲娣誨姞鎺т歡錛屾垨鑰呯湅涓嶅埌鎺т歡鐨勫睘鎬э紝鎴栬?/span>Text,TextArea鎺т歡鏃犳硶娣誨姞銆傚悗鏉ユ寜鐓т互涓婃柟娉曪紝閲嶆柊鏉ヤ簡涓嬈★紝OK浜?/span>!
浜屾墦鍖呭彂甯?/span>SWT紼嬪簭
1.鍥犱負闇瑕?/span>SWT鐨?/span>jar.浣嗘槸Eclipse3.1.1閰嶅悎鐨勭殑SWT涓嶆槸閫氳繃SWT.jar鍙戝竷鐨勶紒鏄?/span>org.eclipse.swt.win32.win32.x86_3.1.0.jar銆傞噷闈㈠寘鎷簡JINI鐨?/span>DLL鍜?/span>SWT綾繪枃浠躲?/span>
闇瑕佷笅杞?/span>
http://www.eclipse.org/downloads/download.php?file=/eclipse/dow ... 09290840/swt-3.1.1-win32-win32-x86.zip
榪欓噷鏈?/span>SWT.jar錛屽拰3涓?/span>DLL,鎶婁粬浠В鍘嬬緝鍑烘潵錛屽鐢紒
2.閫氳繃Eclipse鐨勫鍑哄姛鑳斤紝鐢熸垚涓涓彲鎵ц鐨?/span>jar錛?/span>MANIFEST.MF鏂囦歡閫夋嫨鐢?/span>Eclipse鐢熸垚錛屽茍涓斾繚瀛樺埌欏圭洰涓?/span>
3.涓婇潰2鐨勬楠わ紝鍙槸涓轟簡寰楀埌MANIFEST.MF鏂囦歡銆備笅闈慨鏀逛竴涓嬭繖涓枃浠躲?/span>
鍔犱笂 Class-Path: SWT.jar
濡傛灉榪樻湁鍏朵粬鐨?/span>jar,鐢ㄧ┖鏍煎垎寮錛屽姞鍒板悗闈?/span>
4.鍐嶇敓鎴愪竴嬈?/span>jar,MANIFEST.MF閫夋嫨淇敼鍚庣殑銆?/span>
5.灝嗘墦鍖呯殑jar,SWT.jar,3涓?/span>DLL鏀懼埌涓涓枃浠跺す涓嬶紝鍙屽嚮鍙墽琛岀殑jar錛岀▼搴忚繍琛岋紒
涓?/span>jar杞?/span>EXE
1.鎵撳紑JSmooth0.9.9-7銆?/span>http://www610.fixdown.com/jsmooth-0.9.9-7-setup.exe
2.閫夋嫨skeleton,鍦?/span>skeleton properties涓厛鎶?/span>Launch java app in the exe process,Debug console閫変腑銆傚彲浠ユ煡鐪嬬敓鎴?/span>EXE鏂囦歡鎵ц榪囩▼淇℃伅銆?/span>
3.閫夋嫨Executable.
閫夋嫨鐢熸垚鐨?/span>EXE鏂囦歡瀛樻斁浣嶇疆銆?/span>
閫夋嫨EXE鏂囦歡鍥炬爣
璁劇疆褰撳墠璺緞錛岄夋嫨瑕佽漿鎹㈢殑jar鏂囦歡鎵鍦ㄦ枃浠跺す
4.閫夋嫨Application
璁劇疆Main Class,鍙墽琛?/span>jar涓殑Main Class娉ㄦ剰鍐欑被鍏ㄥ悕
璁劇疆Application Argument,濡傛灉闇瑕佷紶鍏ュ弬鏁幫紝鍐欏埌榪欓噷
璁劇疆Embedded jar: 鍙墽琛岀殑jar
璁劇疆Classpath錛?/span>SWT.jar 濡傛灉鏈夊叾浠栫殑緇х畫娣誨姞
5.閫夋嫨JVM Selection銆傞粯璁ゅ惂銆?/span>
6.JVM Configuration:
鍙互璁劇疆java properties,鍐呭瓨浣跨敤
7.鐐歸嬌杞傜敓鎴愶紒鐪嬫槸鍚︽湁閿欒銆?/span>
8.EXE鎵ц闇瑕佺殑鏂囦歡錛?/span>EXE,3涓?/span>DLL錛?/span>SWT.jar
鎶婁粬浠冨埌鍏朵粬鐩綍錛屼竴鏍峰彲浠ユ墽琛岋紒
9.鍘繪帀skeleton properties涓殑Launch java app in the exe process,Debug console閫夐」銆?/span>
閲嶆柊鐢熸垚銆傚簲璇?/span>OK浜嗭紒
-----
鐪嬩簡榪欎釜錛岀粓浜庡畬鎴愪簡SWT紼嬪簭鎵撳寘錛屽お鐖戒簡
<?xml version="1.0" encoding="GB2312" ?>
<!DOCTYPE project>
<project name="JavaMailClient" default="usage" basedir=".">
<property name="project-name" value="JavaMailClient"/>
<property name="build" value="build"/>
<property name="lib" value="lib"/>
<property name="src" value="src"/>
<property name="build.classes" value="${build}/classes" />
<property file="build.properties"/>
<property name="jar.dir" value="jar"/>
<property name="jar-file-name" value="${project-name}" />
<path id="Third-Part Lib">
<fileset dir="${lib}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="usage" description="Build file usage info (default task)">
<echo message=" " />
<echo message="${project-name} " />
<echo message="-------------------------------------------------------" />
<echo message="Available Targets:" />
<echo message=" ***" />
<echo message=" Compiling:" />
<echo message=" compile - Compiles the source code" />
<echo message=" ***" />
<echo message=" Cleaning up:" />
<echo message=" clean - Delete class files" />
<echo message=" ***" />
<echo message=" JAR:" />
<echo message=" jar - Generate an .jar for source code" />
<echo message=" ***" />
<echo message=" Executing:" />
<echo message=" run - Execute the JavaMail client ! Get email of the latest two days from server" />
<echo message=" ***" />
<echo message="-------------------------------------------------------" />
</target>
<target name="prepare" >
<mkdir dir="${build.classes}" />
<mkdir dir="${jar.dir}" />
</target>
<target name="clean" >
<delete dir="${build}" />
<delete dir="${jar.dir}" />
</target>
<target name="compile" depends="clean,prepare">
<echo message="Compiling the source code!"/>
<javac
srcdir="${src}"
destdir="${build.classes}"
deprecation="true"
failonerror="true" debug="true"
>
<classpath refid="Third-Part Lib"/>
</javac>
</target>
<!-- <target name="run" description="Receive email! " depends="compile"> -->
<!-- 宸茬粡鍙互姝g‘榪愯錛佹敞鎰忥細classpath="${build.classes}" 涓瀹氳鍔犱笂錛屽惁鍒欎細鎶?java.lang.NoClassDefFoundError"鐨勯敊璇紒-->
<!--
<target name="run" description="Receive email! ">
<java classname="POP3MailReceiver" classpath="${build.classes}" fork="true" maxmemory="256m">
<classpath refid="Third-Part Lib"/>
</java>
</target>
-->
<target name="run" description="Receive email! ">
<java jar="${jar.dir}/${jar-file-name}.jar" fork="true" maxmemory="256m"/>
</target>
<target name="jar" depends="compile">
<jar destfile="${jar.dir}/${jar-file-name}.jar" basedir="${build.classes}">
<manifest>
<!-- 姝ゅ闇瑕佹牴鎹渶瑕佽繘琛屼慨鏀?-->
<attribute name="Main-Class" value="POP3MailReceiver"/>
<attribute name="Class-Path" value="../${lib}/commons-email-1.0.jar ../${lib}/mail.jar ../${lib}/activation.jar"/>
</manifest>
</jar>
</target>
</project>
闄勶細Jar鍖呯殑姝g‘榪愯鏂規(guī)硶錛堣漿錛?/font>
-jar鍙傛暟榪愯搴旂敤鏃禼lasspath鐨勮緗柟娉?nbsp;
浣犳槸鍚﹀湪浣跨敤java -jar鍙傛暟榪愯鎵撳寘濂界殑jar搴旂敤紼嬪簭鐨勬椂鍊欏彂鐜板簲鐢ㄧ▼搴忔棤娉曟壘鍒癱lasspath涓嬭緗ソ鐨勭涓夋柟綾誨簱鐨勫唴瀹癸紵鏃犺鎬庝箞璁劇疆classpath鍙傛暟閮芥棤嫻庝簬浜嬶紝鎬繪槸浼氭姤ClassNotFound鐨勯敊璇紵閭d箞鏈瘒甯栧瓙鍙互甯姪浣犳憜鑴辯儲鎭?:)
褰撶敤java -jar yourJarExe.jar鏉ヨ繍琛屼竴涓粡榪囨墦鍖呯殑搴旂敤紼嬪簭鐨勬椂鍊欙紝浣犱細鍙戠幇濡備綍璁劇疆-classpath鍙傛暟搴旂敤紼嬪簭閮芥壘涓嶅埌鐩稿簲鐨勭涓夋柟綾伙紝鎶lassNotFound閿欒銆傚疄闄呬笂榪欐槸鐢變簬褰撲嬌鐢?jar鍙傛暟榪愯鐨勬椂鍊欙紝java VM浼氬睆钄芥墍鏈夌殑澶栭儴classpath,鑰屽彧浠ユ湰韜珁ourJarExe.jar鐨勫唴閮╟lass浣滀負綾葷殑瀵繪壘鑼冨洿銆?/font>
瑙e喅鏂規(guī)
涓 BootStrap class鎵╁睍鏂規(guī)
Java 鍛戒護琛屾彁渚涗簡濡備綍鎵╁睍bootStrap 綰у埆class鐨勭畝鍗曟柟娉曪細
-Xbootclasspath: 瀹屽叏鍙栦唬鍩烘湰鏍稿績鐨凧ava class 鎼滅儲璺緞.
涓嶅父鐢?鍚﹀垯瑕侀噸鏂板啓鎵鏈塉ava 鏍稿績class
-Xbootclasspath/a: 鍚庣紑鍦ㄦ牳蹇僣lass鎼滅儲璺緞鍚庨潰.甯哥敤!!
-Xbootclasspath/p: 鍓嶇紑鍦ㄦ牳蹇僣lass鎼滅儲璺緞鍓嶉潰.涓嶅父鐢?閬垮厤
寮曡搗涓嶅繀瑕佺殑鍐茬獊.
璇硶濡備笅:
(鍒嗛殧絎︿笌classpath鍙傛暟綾諱技錛寀nix浣跨敤:鍙?windows浣跨敤;鍙鳳紝榪欓噷浠nix涓轟緥)
java -Xbootclasspath/a:/usrhome/thirdlib.jar: -jar yourJarExe.jar
浜?extend class 鎵╁睍鏂規(guī)
Java exten class 瀛樻斁鍦▄Java_home}\jre\lib\ext鐩綍涓?褰撹皟鐢↗ava鏃?瀵規(guī)墿灞昪lass璺緞鐨勬悳绱㈡槸鑷姩鐨?鎬諱細鎼滅儲鐨?榪欐牱,瑙e喅鐨勬柟妗堝氨寰堢畝鍗曚簡,灝嗘墍鏈夎浣跨敤鐨勭涓夋柟鐨刯ar鍖呴兘澶嶅埗鍒癳xt 鐩綍涓?
錛堣嚜璇勶細涓嶆帹鑽愪嬌鐢紝鑷傚簲鎬у緢宸紒錛?/font>
涓?User class鎵╁睍鏂規(guī)
褰撲嬌鐢?jar鎵ц鍙墽琛孞ar鍖呮椂,JVM灝咼ar鍖呮墍鍦ㄧ洰褰曡緗負codebase鐩綍,鎵鏈夌殑class鎼滅儲閮藉湪榪欎釜鐩綍涓嬪紑濮?鎵浠ュ鏋滀嬌鐢ㄤ簡鍏朵粬絎笁鏂圭殑jar鍖?涓涓瘮杈冨彲浠ユ帴鍙楃殑鍙厤緗柟妗?灝辨槸鍒╃敤jar鍖呯殑Manifest鎵╁睍鏈哄埗.
姝ラ濡備笅:
1.灝嗛渶瑕佺殑絎笁鏂圭殑jar鍖?澶嶅埗鍦ㄥ悓鍙墽琛宩ar鎵鍦ㄧ殑鐩綍鎴栨煇涓瓙鐩綍涓? 姣斿:jar 鍖呭湪 /usrhome/yourJarExe.jar 閭d箞浣犲彲浠ユ妸鎵鏈塲ar鍖呭鍒跺埌/usrhome鐩綍涓嬫垨/usrhome/lib 絳夌被浼肩殑瀛愮洰褰曚笅.
2.淇敼Manifest 鏂囦歡
鍦∕anifest.mf鏂囦歡閲屽姞鍏ュ涓嬭
Class-Path:classes12.jar lib/thirdlib.jar
Class-Path 鏄彲鎵цjar鍖呰繍琛屼緷璧栫殑鍏抽敭璇?璇︾粏鍐呭鍙互鍙傝冿細http://java.sun.com/docs/books/tutorial/ext/index.html
浠ヤ笂涓夌鏂規(guī)硶鎺ㄨ崘絎竴縐嶏紝鎵╁睍鎬уソ錛屾搷浣滆搗鏉ヤ篃鏈鏂逛究.
鍙﹀緙栧啓鑷繁鐨凜lassLoader,鏉ュ姩鎬佽澆鍏lass,鏄洿鍔犲鏉傚拰楂樼駭鎶鏈?闄愪簬綃囧箙,涓嶈禈榪?鏈夊叴瓚d簡瑙e彲浠ュ幓google涓涓媍ustom classloader
Java鐨勫畨鍏ㄦ満鍒墮殢涓嶅悓鐨凧DK鐗堟湰鏈変笉鍚岀殑鍙樺寲,浼氬獎鍝嶅緢澶氭牳蹇僀LASS,姣斿Thread,鎵浠ュ緢澶氬ぇ鍨嬪晢涓氳蔣浠?瑕佹眰JDK鐨勭増鏈緢涓ユ牸.閮ㄥ垎鍘熷洜涔熷湪姝?榪欎篃瑕佹眰鍦ㄥ彂甯冭嚜宸辯紪鍐欑殑搴旂敤鏃跺?涓嶇澶у皬,閮借璇存槑寮鍙戝拰嫻嬭瘯鐨凧DK鐗堟湰.
鏈枃鎵榪版柟娉曟祴璇曞熀浜巎2sdk 1.4.2_04-b05
----------------------------------------------------------------------------------------------
闄?鑳屾櫙鐭ヨ瘑
鑷狫DK 1.2浠ュ悗,JVM閲囩敤浜嗗鎵?delegate)妯″紡鏉ヨ澆鍏lass錛庨噰鐢ㄨ繖縐嶈璁$殑鍘熷洜鍙互鍙傝?a >http://java.sun.com/docs/books/tutorial/ext/basics/load.html
褰掔撼鏉ヨ:鏄熀浜嶫VM sandbox(娌欑洅)瀹夎妯″瀷涓婃彁渚涘簲鐢ㄥ眰鐨勫彲瀹氬埗鐨勫畨鍏ㄦ満鍒?
Java铏氭嫙鏈?JVM)瀵繪壘Class鐨勯『搴?/p>
1. Bootstrap classes
灞炰簬Java 騫沖彴鏍稿績鐨刢lass,姣斿java.lang.String絳?鍙妑t.jar絳夐噸瑕佺殑鏍稿績綰у埆鐨刢lass.榪欐槸鐢盝VM Bootstrap class loader鏉ヨ澆鍏ョ殑.涓鑸槸鏀劇疆鍦▄java_home}\jre\lib鐩綍涓?/p>
2. Extension classes
鍩轟簬Java鎵╁睍鏈哄埗,鐢ㄦ潵鎵╁睍Java鏍稿績鍔熻兘妯″潡.姣斿Java涓插彛閫氳妯″潡comm.jar.涓鑸斁緗湪{Java_home}\jre\lib\ext鐩綍涓?/p>
3. User classes
寮鍙戜漢鍛樻垨鍏朵粬絎笁鏂瑰紑鍙戠殑Java紼嬪簭鍖?閫氳繃鍛戒護琛岀殑-classpath鎴?cp,鎴栬呴氳繃璁劇疆CLASSPATH鐜鍙橀噺鏉ュ紩鐢?JVM閫氳繃鏀劇疆鍦▄java_home}\lib\tools.jar鏉ュ鎵懼拰璋冪敤鐢ㄦ埛綰х殑class.甯哥敤鐨刯avac涔熸槸閫氳繃璋冪敤tools.jar鏉ュ鎵劇敤鎴鋒寚瀹氱殑璺緞鏉ョ紪璇慗ava婧愮▼搴?榪欐牱灝卞紩鍑轟簡User class璺緞鎼滅儲鐨勯『搴忔垨浼樺厛綰у埆鐨勯棶棰?
3.1 緙虹渷鍊?璋冪敤Java鎴杍avawa鐨勫綋鍓嶈礬寰?.),鏄紑鍙戠殑class鎵瀛樺湪鐨勫綋鍓嶇洰褰?br />
3.2 CLASSPATH鐜鍙橀噺璁劇疆鐨勮礬寰?濡傛灉璁劇疆浜咰LASSPATH,鍒機LASSPATH鐨勫間細瑕嗙洊緙虹渷鍊?br />
3.3 鎵цJava鐨勫懡浠よ-classpath鎴?cp鐨勫?濡傛灉鍒跺畾浜嗚繖涓や釜鍛戒護琛屽弬鏁頒箣涓,瀹冪殑鍊間細瑕嗙洊鐜鍙橀噺CLASSPATH鐨勫?br />
3.4 -jar 閫夐」:濡傛灉閫氳繃java -jar 鏉ヨ繍琛屼竴涓彲鎵ц鐨刯ar鍖?榪欏綋鍓峧ar鍖呬細瑕嗙洊涓婇潰鎵鏈夌殑鍊?鎹㈠彞璇濊,-jar 鍚庨潰鎵璺熺殑jar鍖呯殑浼樺厛綰у埆鏈楂?濡傛灉鎸囧畾浜?jar閫夐」,鎵鏈夌幆澧冨彉閲忓拰鍛戒護琛屽埗瀹氱殑鎼滅儲璺緞閮藉皢琚拷鐣?JVM APPClassloader灝嗗彧浼氫互jar鍖呬負鎼滅儲鑼冨洿.
鏈夊叧鍙墽琛宩ar鏈夎澶氱浉鍏崇殑瀹夊叏鏂歸潰鐨勬弿榪?鍙互鍙傝?a >http://java.sun.com/docs/books/tutorial/jar/ 鏉ュ叏闈簡瑙?
榪欎篃鏄負浠涔堝簲鐢ㄧ▼搴忔墦鍖呮垚鍙墽琛岀殑jar鍖呭悗,涓嶇浣犳庝箞璁劇疆classpath閮戒笉鑳藉紩鐢ㄥ埌絎笁鏂筳ar鍖呯殑涓滆タ浜?