锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
錛?/SPAN>1錛夊垱寤哄伐紼?/SPAN>
l 鍦?/SPAN>Eclipse涓垱寤哄涓嬪浘鐨勭畝鍗曞伐紼?/SPAN>
錛?/SPAN>2錛夋寚瀹?/SPAN>Repository浣嶇疆
l Windows -> Open Perspective -> Other
l 閫夋嫨CVS Repository Exploring欏癸紝鎵撳紑CVS Repository Exploring
l 鍦?/SPAN>CVS Repositories瑙嗗浘涓彸鍑伙紝閫夋嫨New -> Repository Location
l 鎸囧畾CVS涓繪満鍚嶅拰Repository璺緞錛堝甫/鐨?/SPAN>Repository鍚嶏級
l 鎸囧畾鐢ㄦ埛鍚嶅拰瀵嗙爜
l 鎸囧畾閫氫俊鍗忚錛岄氬父浣跨敤pserver
l 鐐瑰嚮Finish鍒涘緩Repository浣嶇疆淇℃伅
錛?/SPAN>3錛夊叡浜伐紼?/SPAN>
l 鍦?/SPAN>Navigator瑙嗗浘涓彸鍑誨伐紼嬪悕錛岄夋嫨Team -> Share Project
l 閫夋嫨宸插垱寤虹殑Repository浣嶇疆錛堜篃鍙互鍦ㄦ澶勬柊寤猴級
l 緙虹渷浣跨敤宸ョ▼鍚嶄綔涓烘ā鍧楀悕
l 鍚戝鐨勬渶鍚庝竴欏墊樉紺哄伐紼嬩腑灝嗚琚彁浜ゅ拰榪藉姞鐨勬枃浠?BR>
l
l 鍏變韓鍚庣殑宸ョ▼濡備笅鍥炬墍紺?BR>
錛?/SPAN>1錛夌畝榪?/SPAN>
l CVS 錛?/SPAN>Concurrent Versions System錛夌郴緇熷湪鍥㈤槦寮鍙戦」鐩椂榪涜鐗堟湰鎺у埗錛岄噰鐢ㄧ殑鏄?/SPAN>C/S鏋舵瀯
l Eclipse鍐呭緩浜?/SPAN>CVS瀹㈡埛绔紝鏂逛究鍥㈤槦CVS鎺у埗
l 鐩墠Unix騫沖彴閮藉甫CVS鏈嶅姟鍣紝Windows騫沖彴姣旇緝嫻佽鐨勬槸CVSNT錛?/SPAN>http://www.cvsnt.com/cvspro/錛?/SPAN>
l 鍏堣瀹夎CVSNT錛堟垜鐨勬槸鍦?/SPAN>Windows 2003 Server涓婏級
l 瀹夎瀹屽悗鍚姩CVSNT Control Panel錛屽彲浠ュ湪Service Status欏典腑鐪嬪埌榪愯涓殑鏈嶅姟
錛?/SPAN>2錛夊垱寤?/SPAN>CVS Repository
l 閫夋嫨Repositories欏碉紝鐐瑰嚮Add鎸夐挳鍒涘緩鏂扮殑CVS Repository
l Location閮ㄥ垎鎸囧畾淇濆瓨Repository鐨勭洰褰曪紙鍙互鏂板緩錛?/SPAN>
l Name閮ㄥ垎鎸囧畾Repository鍚嶏紙浠?/SPAN>/寮濮嬶級
l 紜繚Publish Repository閫変腑
l 鍦ㄧ‘璁ゅ垵濮嬪寲Repository灝卞垱寤哄ソ浜?/SPAN>Repository
錛?/SPAN>3錛夐厤緗夐」
l 涓轟簡浣?/SPAN>Eclipse鑳藉姝e父鍜?/SPAN>CVSNT閫氫俊錛岃繕瑕佸皢Compatibility欏典腑鐨?/SPAN>Respond as cvs 1.11.2 to version request欏歸変腑
錛?/SPAN>4錛夌敤鎴風鐞?/SPAN>
l CVSNT鏈綆鍗曠殑鐢ㄦ埛綆$悊鏂瑰紡灝辨槸鍜?/SPAN>NT楠岃瘉緇撳悎錛岃繖鏍鳳紝鍒涘緩涓涓?/SPAN>NT鐢ㄦ埛涔熷氨鍒涘緩浜嗕竴涓?/SPAN>CVS鐢ㄦ埛
l 閫氳繃緋葷粺綆$悊鍛樿緗敤鎴風殑璁塊棶鏉冮檺鏉ユ帶鍒剁敤鎴峰CVS鐨勮闂紝渚嬪錛屼負浜嗕嬌鐢ㄦ埛鑳藉鍚?/SPAN>CVS鎻愪氦鏇存柊鐨勬枃浠訛紝灝卞繀欏葷粰璇ョ敤鎴峰彉鏇寸殑鏉冮檺
錛?錛?/FONT> ExpandableComposite
l Web欏甸潰涓竴涓氱敤鐨勪富棰樻槸鍏鋒湁鏀剁緝涓閮ㄥ垎欏甸潰鍐呭鐨勮兘鍔?
l Eclipse Form涔熸彁渚涗簡榪欐牱涓涓帶浠訛細ExpandableComposite
l 涓嬮潰鐨勪唬鐮佺墖鏂槸浣跨敤ExpandableComposite鐨勪竴涓緥瀛愶細
ExpandableComposite ec = toolkit.createExpandableComposite(body,
ExpandableComposite.TREE_NODE
| ExpandableComposite.CLIENT_INDENT);
ec.setText("Expandable Composite title");
String ctext = "We will now create a somewhat long text so that "
+ "we can use it as content for the expandable composite. "
+ "Expandable composite is used to hide or show the text using the "
+ "toggle control";
Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
ec.setClient(client);
td = new TableWrapData();
td.colspan = 2;
ec.setLayoutData(td);
ec.addExpansionListener(new ExpansionAdapter() {
public void expansionStateChanged(ExpansionEvent e) {
form.reflow(true);
}
});
l 榪欎釜鎺т歡鏈夊緢澶氶鏍鹼紝TREE_NODE浣垮緱璇ユ帶浠跺叿鏈夋爲鍨嬭妭鐐圭殑灞曞紑銆佹敹緙╁姛鑳斤紱鑰?/SPAN>TWISTIE浣垮緱鎺т歡鍏鋒湁涓夎綆ご椋庢牸
l EXPANDED浣垮緱鍒濆灞曞紑鏄劇ず
l CLIENT_INDENT浣垮緱Client鍐呭緙╄繘瀵歸綈
l ExpandableComposite鍛堢幇涓烘縺媧繪帶浠跺拰鏍囬錛岃屽彲浠ュ睍寮銆佹敹緙╃殑鍐呭縐頒負Client
l Client蹇呴』鏄彲灞曞紑鐨?/SPAN>composite錛堜笂渚嬫槸Label鎺т歡錛?/SPAN>
l 鏈鍚庨渶瑕佹坊鍔?SPAN lang=EN-US>Expansion鐩戝惉鍣ㄥ湪鐘舵佸彉鍖栨椂錛宺eflow Form錛堝嵆鏍規嵁鎺т歡鐨勬柊鐨勫ぇ灝忛噸鏂板畾浣嶅拰鏇存柊婊氬姩鏉★級
l 涓嬮潰鏄笂渚嬬殑榪愯緇撴灉錛?BR>
錛?SPAN lang=EN-US>2錛塖ection
l Eclipse Form涓渶甯哥敤鐨勫畾鍒舵帶浠跺氨鏄?/SPAN>Section錛堝湪PDE涓埌澶勫彲瑙侊級
l Section鎵╁睍ExpandableComposite錛屼絾鍏鋒湁涓嬮潰鐨勬柊鐗規э細
n 鍦ㄦ爣棰樹笅闈㈡湁涓涓垎闅旀帶浠?SPAN lang=EN-US>
n 鍦ㄥ垎闅旀帶浠朵笅闈㈠彲浠ユ湁涓涓弿榪版枃鏈?SPAN lang=EN-US>
l 涓嬮潰鐨勪唬鐮佺墖鏂槸浣跨敤Section鐨勪竴涓緥瀛愶紝浠g爜鍜?/SPAN>ExpandableComposite娌℃湁澶ぇ宸埆錛岃繖閲屾槸鐢ㄤ簡TWISTIE椋庢牸錛?/SPAN>
Section section = toolkit.createSection(body, Section.DESCRIPTION
| Section.TWISTIE | Section.EXPANDED);
td = new TableWrapData(TableWrapData.FILL);
td.colspan = 2;
section.setLayoutData(td);
section.addExpansionListener(new ExpansionAdapter() {
public void expansionStateChanged(ExpansionEvent e) {
form.reflow(true);
}
});
section.setText("Section title");
toolkit.createCompositeSeparator(section);
section
.setDescription("This is the description that goes below the title");
Composite sectionClient = toolkit.createComposite(section);
sectionClient.setLayout(new GridLayout());
button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);
button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);
section.setClient(sectionClient);
l 涓嬮潰鏄笂渚嬬殑榪愯緇撴灉錛?/FONT>
Eclipse Form鎻愪緵浜?/SPAN>2涓柊鐨勫竷灞
錛?/SPAN>1錛?/SPAN>TableWrapLayout
l 闂錛氬鏋滃皢涓婁緥涓秴閾炬帴鐨勬枃鏈緗殑瓚沖闀?/SPAN>
link.setText("This is an example of a form that is much longer and will need to wrap.");
鍗充嬌璁劇疆浜?/SPAN>SWT.WRAP錛屾枃鏈唴瀹逛笉浼氳嚜鍔?/SPAN>WRAP錛岃繖鏄洜涓轟綋鍐呭鐨勫竷灞鏄?/SPAN>GridLayout
l Eclipse Form鎻愪緵鏇夸唬鐨勫竷灞TableWrapLayout錛氱被浼間簬GridLayout錛屼絾鏄叿鏈夎薄HTML琛ㄦ牸涓鏍瘋嚜鍔?/SPAN>WRAP鍔熻兘
l 涓嬮潰鏄В鍐寵秴閾炬帴鏂囨湰鑷姩WRAP鐨勪緥瀛愶細
public void createPartControl(Composite parent) {
toolkit = new FormToolkit(parent.getDisplay());
form = toolkit.createScrolledForm(parent);
form.setText("Hello, Eclipse Forms");
Composite body = form.getBody();
TableWrapLayout layout = new TableWrapLayout();
body.setLayout(layout);
Hyperlink link = toolkit.createHyperlink(body, "Click here.", SWT.WRAP);
link.addHyperlinkListener(new HyperlinkAdapter() {
public void linkActivated(HyperlinkEvent e) {
System.out.println("Link activated!");
}
});
layout.numColumns = 2;
link.setText("This is an example of a form that is much longer and will need to wrap.");
TableWrapData td = new TableWrapData();
td.colspan = 2;
link.setLayoutData(td);
Label label = toolkit.createLabel(body, "Text field label:");
Text text = toolkit.createText(body, "");
td = new TableWrapData(TableWrapData.FILL_GRAB);
text.setLayoutData(td);
text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
Button button = toolkit.createButton(body,
"An example of a checkbox in a form", SWT.CHECK);
td = new TableWrapData();
td.colspan = 2;
button.setLayoutData(td);
toolkit.paintBordersFor(body);
}
l 涓嬮潰鏄▼搴忓彉鍖栫殑鍦版柟錛?/SPAN>
n TableWrapLayout鏇夸唬GridLayout
n 浣跨敤TableWrapData鏉ユ彁渚涘竷灞鏁版嵁淇℃伅
n 璁劇疆鐨勫睘鎬т嬌鐢?/SPAN>colspan銆?/SPAN>rowspan絳夋潵婧愪簬HTML琛ㄦ牸鍗曞厓鐨勫睘鎬?/SPAN>
l 瑕佹敞鎰忕殑鏄細闇瑕佽嚜鍔?SPAN lang=EN-US style="COLOR: black">WRAP鐨勬帶浠訛紝闇瑕佽緗垚SWT.WRAP椋庢牸
錛?SPAN lang=EN-US>2錛?/SPAN>ColumnLayout
l ColumnLayout鏄?/SPAN>Eclipse Form鎻愪緵鐨勫彟涓涓畾鍒跺竷灞
l ColumnLayout鐨勫竷灞鏂瑰紡鏄粠涓婂埌涓嬶紝浠庡乏鍒板彸
l 鍦ㄥ彉鍖?/SPAN>Form鐨勫搴︽椂錛屼細鑷姩璋冩暣鎺т歡鍒楁暟浠ラ傚簲Form鐨勫搴?/SPAN>
l ColumnLayout鐨勮緗緢綆鍗曪紝閫氬父鍙璁劇疆鍒楁暟鐨勮寖鍥達紙緙虹渷鏄?/SPAN>1-3錛?/SPAN>
l 鍦ㄥ悗闈㈢殑鐩稿叧閮ㄥ垎浼氱粰鍑轟嬌鐢ㄧ殑渚嬪瓙
l 鏃㈠己澶у張綆鍗曪紝鏈夊姪浜庢洿瀹規槗鐨勯泦鎴?/SPAN>AOP鍒版柊鐨勬垨宸插瓨鍦ㄧ殑欏圭洰涓?/SPAN>
l AspectWerkz 涓昏鐗規э細
脴 榪愯鏃跺拰鍔犺澆鏃跺瓧鑺傜爜淇錛氫綘鍙互鍦ㄨ繍琛屾椂鎴栫紪璇戞椂杞繪澗鐨勬敼閫犱換浣曪紙鏃э級搴旂敤紼嬪簭鎴栭櫎浜?/SPAN>rt.jar浠ュ鐨勫閮ㄧ被搴?/SPAN>
脴 鏀寔join point妯″瀷
脴 鏀寔Annotation錛氬尮閰?/SPAN>JavaDoc鍜?/SPAN>JSR-175錛屾敮鎸佺敤鎴瘋嚜瀹氫箟Annotation
脴 鏀寔閮ㄧ講澶氫釜Aspect瀹氫箟鏂囦歡鍒伴儴緗茬殑搴旂敤紼嬪簭錛?SPAN lang=EN-US>WEB-INF/aop.xml銆丮ETA-INF/aop.xml錛?o:p>
脴 Introduction/鍐呯被鍨嬪0鏄庯紙涔熺ОMixin錛夛紝涔熷氨鏄叿鏈夋坊鍔犳帴鍙e拰瀹炵幇鍒板凡瀛樺湪鐨勭被涓殑鑳藉姏
脴 Annotation瀹氫箟錛氬畾涔?/SPAN>Aspect浣跨敤鐨勮繍琛屾椂Annotation錛堜負JSR-175鍑嗗錛?/SPAN>
脴 XML瀹氫箟錛氬畾涔?/SPAN>Aspect浣跨敤鐨?/SPAN>XML錛?/SPAN>XML鍙互鐢ㄦ潵綺劇偧銆佹敼鍐欏拰瑙f瀽Annotation瀹氫箟
脴 鎻掍歡寮?/SPAN>Aspect綆$悊鍣ㄨ兘澶熷拰IoC妗嗘灦錛堝Spring鎴?/SPAN>PicoContainer錛変竴璧峰伐浣?/SPAN>
脴 鍥涚涓嶅悓鐨?SPAN lang=EN-US>Advice鍜孖ntroduction閮ㄧ講妯″瀷錛堣寖鍥達級錛?/SPAN>perJVM錛堝崟妯″紡錛夈?/SPAN> perClass銆?/SPAN>perInstance 鍜?/SPAN>perThread
脴 Advice鍜孖ntroduction鑳藉鍔ㄦ侀儴緗層佸弽閮ㄧ講鎴栭噸鏂伴儴緗?/SPAN>
脴 楂樻ц兘錛屼嬌鐢?SPAN lang=EN-US>JIT緙栬瘧
脴 浣跨敤Fine-grained妯″紡璇█閫夋嫨join point
脴 鎵鏈?SPAN lang=EN-US>Advice鑳藉鍜屾墍鏈夌殑join point鍜屽悇縐嶆販鍚堢被鍨嬬殑pointcut
脴 鑴辨満鍙樻崲錛堝彲浠ョ敤浣滃悗澶勭悊鍣級
脴 Aspect銆?/SPAN>Advice鍜孖ntroduction浣跨敤POJO緙栫爜
脴 鐩爣綾誨彲浠ユ槸姝h鐨?SPAN lang=EN-US>POJO錛屼篃灝辨槸涓嶉渶瑕佹帴鍙?o:p>
脴 鏀寔閫氳繃瀹氫箟浼犻掑弬鏁扮粰Advice鍜屽畾涔夊彲閲嶇敤鐨凙dvice鍫嗘爤
脴 鍏冩暟鎹鍔犲埌綾諱腑
脴 綆鍗曠殑鐢ㄦ硶鍜岄厤緗?SPAN lang=EN-US>
璁塊棶騫沖彴涓撴湁淇℃伅騫朵笉鏄竴浠跺鏄撶殑浜嬨傝櫧鐒跺彲浠ヤ嬌鐢?/SPAN> Runtime.exec() 鍒涘緩榪涚▼錛屼絾鐢變簬騫沖彴涔嬮棿鐨勫樊寮傦紝鏋勯犲弬鏁伴泦甯稿父浠や漢澶寸棝涓嶅凡銆?/SPAN>Tiger鎻愪緵浜嗘柊鐨?/SPAN>ProcessBuilder綾伙紝浣垮緱璁塊棶騫沖彴涓撴湁淇℃伅鏇村姞瀹規槗銆?/SPAN>
1銆?/SPAN>璁塊棶鐜鍙橀噺
System.getenv()鏈変袱縐嶆柟娉曪細
錛?/SPAN>1錛夋寚瀹氱幆澧冨彉閲忓悕鏉ヨ幏寰楃幆澧冨彉閲忓鹼紝濡備笅闈㈢殑渚嬪瓙錛?/SPAN>
public class EnvTest {
public static void main(String[] args) {
System.out.println(System.getenv("JAVA_HOME"));
}
}
杈撳嚭鐨勭粨鏋滃彲鑳芥槸錛?/SPAN>
E:\develop\j2sdk1.4.2_05
錛?/SPAN>2錛?/SPAN>榪斿洖鎵鏈夌幆澧冨彉閲忕殑Map瀵硅薄錛屼笅闈㈢殑渚嬪瓙杈撳嚭鎵鏈夌幆澧冨彉閲忓悕鍜屽鹼細
public class EnvDump {
public static void main(String[] args) {
for (Entry entry : System.getenv().entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}
}
2銆?/SPAN>ProcessBuilder
l 鏃╂湡Java鐗堟湰鍏佽浣跨敤 Runtime
.exec()
鏂規硶鍒涘緩鏈満榪涚▼錛岃鏂規硶浠嶇劧鏈夋晥錛屼絾鏄洜涓轟嬌鐢?/SPAN>String
鏁扮粍浣滀負鍙傛暟銆佷互 File
鍙傛暟浣滀負宸ヤ綔鐩綍錛屾墍浠ュ畾鍒跺瓙榪涚▼姣旇緝鍥伴毦
l 浣跨敤鏂扮殑ProcessBuilder
綾?/SPAN>鍙互綆鍖栬繖涓繃紼?/SPAN>
l 涓嬮潰鏄竴涓惎鍔?/SPAN>EditPlus鐨勭畝鍗曠殑渚嬪瓙錛?/SPAN>
public class ProcessTest {
public static void main(String[] args) throws IOException {
Process p = new ProcessBuilder(鈥淐:\\Program Files\\EditPlus 2\\editplus.exe鈥?.start();
}
}
l 涓嬮潰鏄湪鎵ц鍛戒護鏃舵寚瀹氬弬鏁扮殑渚嬪瓙錛?/SPAN>
public class ProcessTest {
public static void main(String[] args) throws IOException {
Process p = new ProcessBuilder("ping", "sina.com.cn").start();
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
l ProcessBuilder
鎻愪緵浜?directory()
鏂規硶鏀瑰彉榪涚▼鐨勫伐浣滅洰褰曪紝浣跨敤 environment()
鏂規硶鍦ㄨ繘紼嬬┖闂翠腑娣誨姞鍜屽垹闄ょ幆澧冨彉閲?/SPAN>錛屼笅闈㈡槸鏉ヨ嚜JDK5鐨勪緥瀛愶細
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory("myDir");
Process p = pb.start();