2ã€ä¸‹è½½J2ME版本åQ?/FONT>http://java.sun.com 下è²ã€‚或者æ¤åœ°å€åQ?/FONT>
3ã€?FONT color=#0000ff>下è²Eclipse3.01M6版本åQ?/FONT>http://www.Eclipse.org 下è²ã€‚或者æ¤åœ°å€åQ?BR>
ftp://ftp.jaist.ac.jp/pub/eclipse/eclipse/downloads/drops/S-3.1M6-200504011645/eclipse-SDK-3.1M6-win32.zip
4ã€?FONT color=#0000ff>下è²Eclipse3.01M6ç‰ˆæœ¬çš„ä¸æ–‡è¯a€åŒ…:http://www.Eclipse.org 下è²ã€‚或者æ¤åœ°å€åQ?BR>
http://download.eclipse.org/eclipse/downloads/drops/L-3.0.1_Translations-200409161125/NLpack-eclipse-SDK-3.0.x-win32.zip
5ã€ä¸‹è½?SPAN style="FONT-SIZE: 12pt">Eclipse3.01M6çš„J2MEæ’äšgEclipseME0.9.0版本åQ?/FONT>http://www.EclipseME.org 下è²ã€‚或者æ¤åœ°å€åQ?A >
http://nchc.dl.sourceforge.net/sourceforge/eclipseme/eclipseme.feature_0.9.0_site.zip
下è²å®Œä»¥ä¸Šäº”个文件åŽåQŒè¿›è¡Œç›¸åº”顺åºçš„安装。å¦å¤–:Eclipseçš„èÊYä»¶ä¸éœ€è¦å®‰è£…,直接解压å›_¯åQŒå¾ˆæ–¹ä¾¿å§ã€?/SPAN>
  ¾U¿ç¨‹æ˜¯ä¸€äº›å¯ä»¥åƈ行的åQŒç‹¬ç«‹çš„æ‰§è¡Œçš„代ç ?之剿ˆ‘编的程åºéƒ½åªèƒ½åšä¸€ä»¶äº‹æƒ?ä¹Ÿå°±æ˜¯åªæœ‰ä¸€ä¸ªçº¿½E?多线½E‹çš„¾~–程ž®±æ˜¯å¯ä»¥ž®†ç¨‹åºä“Q务分æˆå¤šä¸ªåƈ行的åä“QåŠ?åŒæ—¶˜q行,互ä¸òq²æ‰°.我对多线½E‹çš„ç†è§£æ˜¯ä»Žæ ¼æ–—游æˆå¾—æ¥çš?æ ¼æ–—æ¸¸æˆä¸ä¸¤äººå¯¹æ‰“就是通过两个¾U¿ç¨‹æ¥å®žçŽ°çš„å?å¦åˆ™å¦‚ä½•èƒ½å¤Ÿä½ å‡ºä½ çš„æ‹?æˆ‘å‘æˆ‘的冲击波呢.
  (1æœ?8æ—?½H然惛_ˆ°ä¸€ä¸ªé—®é¢?补充一ä¸?多线½E‹æ˜¯ä¸æ˜¯æˆ‘们通常所说的多ä“Q务呢?我的ç†è§£æ˜?ä¸èƒ½˜q™æ ·è¯´ä¹Ÿå¯ä»¥˜q™æ ·è¯?
  ½Ž€å•说æ?多线½E‹æä¾›äº†ä¸€¿U在˜q›ç¨‹å†…部˜q›è¡Œå¤šä¸ª¾U¿ç¨‹òq¶è¡Œè°ƒåº¦çš„æœºåˆ?而多ä»ÕdŠ¡åˆ™æä¾›çš„æ˜¯åœ¨ä¸€ä¸ªæ“作系¾lŸå†…部è¿è¡Œå¤šä¸ªè¿›½E‹çš„æœºåˆ¶.
  多ä“Q务æ“作系¾l?如Windows)çš„åŸºæœ¬åŽŸç†æ˜¯˜q™æ ·çš?æ“作¾pÈ»Ÿž®†CPU的时间片分酾l™å¤šä¸ªçº¿½E?æ¯ä¸ª¾U¿ç¨‹åœ¨æ“作系¾lŸæŒ‡å®šçš„æ—‰™—´ç‰‡å†…完æˆ(注æ„,˜q™é‡Œçš„多个线½E‹æ˜¯åˆ†å±žäºŽä¸åŒè¿›½E‹çš„).æ“作¾pÈ»Ÿä¸æ–的从一个线½E‹çš„æ‰§è¡Œåˆ‡æ¢åˆ°å¦ä¸€ä¸ªçº¿½E‹çš„æ‰§è¡Œ,如æ¤å¾€å¤?å®è§‚上看æ?ž®±å¥½åƒæ˜¯å¤šä¸ª¾U¿ç¨‹åœ¨ä¸€èµäh‰§è¡?ç”׃ºŽ˜q™å¤šä¸ªçº¿½E‹åˆ†å±žäºŽä¸åŒçš„è¿›½E?å› æ¤åœ¨æˆ‘们看æ?ž®±å¥½åƒæ˜¯å¤šä¸ª˜q›ç¨‹åœ¨åŒæ—¶æ‰§è¡?˜q™æ ·ž®±å®žçŽîCº†å¤šä“QåŠ?WhoopsåQŒçœŸ¾l•å£.
  如上,多线½E‹å’Œå¤šä“Q务是有很明显的区别的.ä½†æ˜¯å†æƒ³ä¸€ä¸?在一个应用程åºå†…实现多线½E‹ä¸ä¹Ÿæ˜¯é CPUåˆ†é…æ—‰™—´ç‰‡å—?æ—¢ç„¶åŽŸç†æ˜¯ç›¸åŒçš„,那么多线½E‹ä¹Ÿå¯ä»¥è¯´æ˜¯å¤šä“Q务的.
  一个Java½E‹åºå¯åЍå?ž®±å·²¾l有一个线½E‹åœ¨˜q行,我们å¯ä»¥é€šè¿‡ä¸‹é¢çš„ä¾‹åæ¥åˆæ¥å»ºç«‹ä¸€ä¸ªçº¿½E‹çš„实际å°è±¡
class testthread{ public static void main(String args[]){ Thread t=Thread.currentThread(); t.setName("This Thread is running"); System.out.println("The running thead:"+t); try{ for(int i=0;i<5;i++) { System.out.println("Sleep time"+i); Thread.sleep(1000);//挂è“v¾U¿ç¨‹,ž®±æ˜¯è®©çº¿½E‹ä¼‘æ¯ä¸€ä¼šå„¿, //ä¸å 用系¾lŸèµ„æº?å› æ¤å…¶å®ƒ¾U¿ç¨‹å¯ä»¥¾l§ç®‹. //˜q™é‡Œçš„Thread¾~ºçœè¡¨ç¤ºä¸Èº¿½E?BR>} }catch(InterruptedException e){System.out.println("thread has wrong");} } } |
  ˜q™åªæ˜¯ä¸€ä¸ªçº¿½E?那么我们怎么实现多个¾U¿ç¨‹å‘?åˆæ€Žæ ·è®©çº¿½E‹åšæˆ‘å®‰æŽ’å®ƒè¦åšçš„事情呢?
  实现¾U¿ç¨‹ä½“çš„æž„é€ æœ‰ä¸¤ç§æ–ÒŽ³•.
  ½W¬ä¸€¿U方法是通过¾l§æ‰¿æž„é€ çº¿½E‹ä½“.
  在Javaä¸ä¸“门有一个Thread¾c?˜q™ä¸ª¾c»é‡Œé¢æœ‰ä¸€ä¸ªå‡½æ•°run(),里é¢è®°å½•瀾U¿ç¨‹è¦å®Œæˆçš„æ“ä½œåQŒå°±å¥½åƒé€šå¸¸æ‰€è¯´çš„ä¸Õd‡½æ•°main()ä¸€æ øP¼Œrun()函数˜q行完了,¾U¿ç¨‹ž®Þq»“æŸäº†.通过¾l§æ‰¿˜q™ä¸ª¾c?我们å¯ä»¥å®šä¹‰æˆ‘们自己的线½E?在run函数ä¸å‘Šè¯‰å®ƒè¯¥åšä»€ä¹ˆäº‹æƒ?下é¢çš„程åºå°±æ˜¯ç‘ô承了一个SimpleThread¾c?用两个线½E‹æ¥è¾“出HelloWorld.
public class TwoThread{ |
  ˜q行的结果是两个¾U¿ç¨‹äº¤æ›¿æ˜„¡¤ºå„自的HelloWorld忬¡,è¾“å‡ºæ˜¯æØœåœ¨ä¸€èµïLš„åQŒå› ä¸ÞZ¸¤ä¸ªçº¿½E‹æ˜¯åŒæ—¶˜q行çš?
  虽然以å‰é—´æˆ–的也看了些书¾cï¼Œä½†å¤šæ˜¯éš”é´æ”ç—?上ä¸äº†æ£å¸?¾l䏿•¢è¯´è‡ªå·±æ‡‚Javaã€‚æŽ¥è§¦ä¸€é—¨æ–°çš„æŠ€æœ¯å’Œåˆæ‹ä¸€æ ?都是½W¬ä¸€‹Æ?但ä¸åŒçš„æ˜¯åŽè€…ä¸€èˆ¬å¼€å§‹æ— æ¯”ç”œèœ?¾l“å±€å´å¾ˆç—›è‹¦,而å‰è€…则往往开始很痛苦,‘Šåˆ°åŽæ¥å´è¶Šæ˜¯æœ‰å‘?½Ž€ç›´æ˜¯‹Æ²çÅžä¸èƒ½.现在我就æ£å¤„于这个很痛苦的阶ŒD?˜qžä¸€ä¸ªæœ€½Ž€å•çš„Helloworld都è¿è¡Œä¸å‡ºæ¥,æ€ÀL˜¯æç¤ºExcepion in thread "main" java.lan.NoClassDefFoundError. åªå¥½ä¸Šç½‘åŽÀLŸ¥,åŽÀLœ.记性åˆä¸å¥½,所以æœå‡ºæ¥èµ¶ç´§ä¿å˜ä¸‹æ¥,å¸¸å¤‡æ— æ‚£.
  一般æ¥è¯´å®‰è£…完JDK之åŽ,ä¸€å®šè¦æŒ‰ä¸€ä¸‹æ¥éª¤é…¾|®ï¼Œæ‰å¯æ£ç¡®¾~–译˜q行åQˆå‡å®šjdk版本ä¸?.4.0)
  1.ž®†jdk1.4.0-安装在自己机器的æŸä¸ªç›˜ç¬¦çš„æ ¹ç›®å½•下,如:å¯å®‰è£…在C:\jdk下ã€?
  ***(以下出现的c:\jdkæ”¹äØ“ä½ è‡ªå·±å®‰è£…JDK的目å½?***
  2.å¦‚æžœä½ çš„˜q行环境是win98åQŒåˆ™åœ¨Cç›˜æ ¹ç›®å½•ä¸‹ï¼Œautoexec.batæ–‡äšgä¸ï¼ŒåР入䏋é¢ä¸¤æ¡è¯å¥åQ?
  set Path=%PATH%;c:\jdk\bin
  set CLASSPATH=.;c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jar
  ä¿å˜åŽï¼Œé‡æ–°å¯åŠ¨æœºå™¨åQŒå°±å®Œæˆäº†jdk1.4的安装ã€?
  3.å¦‚æžœä½ çš„˜q行环境是win2000çš„è¯åQŒåˆ™éœ€åœ¨â€œæŽ§åˆ‰™¢æŽì€çš„“系¾lŸâ€ä¸‹åQŒâ€œé«˜¾U§â€é€‰é¡¹çš„“环境å˜é‡â€ä¸åQŒæ·»åŠ ä¸¤ä¸ªç”¨æˆ·å˜é‡ã€?
  其ä¸ä¸€ä¸ªç”¨æˆ·å˜é‡çš„å称为“pathâ€ï¼Œå€égØ“â€?;d:\j2sdk1.4.0_01\binâ€?
  å¦ä¸€ä¸ªç”¨æˆ·å˜é‡çš„åç§°ä¸?CLASSPATH",å€égØ“â€?;d"\j2sdk1.4.0_01\lib\dt.jar;d:\j2sdk1.4.0_01\lib\tools.jarâ€ï¼Œå•击“确定â€å³å¯ã€‚å³å®Œæˆäº†jdk1.4.0的安装ã€?
  至于˜q™æ ·åšçš„æ„ä¹‰ä½•åœ¨åQŒæˆ‘惛_º”该是让Java¾pÈ»Ÿåœ¨ç¼–译å—节代ç ?.java)的时候需è¦ä¸€ä¸ªä»€ä¹ˆä¸œä¸œçš„æ”¯æŒåQŒå¦‚æžœä½ ä¸å‘Šè¯‰å®ƒ˜q™ä¸ªä¸œä¸œæ”‘Öœ¨å“ªä¸ªåœ°æ–¹çš„è¯åQŒå®ƒž®ÞqНå‚ÖMº†?!
  看到å±å¹•上终于显½Cºå‡ºHello worldå¯ÒŽˆ‘æ¥è¯´æ„义é‡å¤§.˜q™æ˜¯æˆ‘近一òq´æ¥å†™çš„½W¬ä¸€ä¸ªç¨‹åº?冿¬¡ít上½E‹åºä¹‹èµ\,½Ž€ç›´æœ‰æå¦‚隔世的感è§?å·²ç»å¿«æ‰¾ä¸å‡†æˆ‘çš„ä½ç½®äº?˜q˜å¥½åŽŸæ¥å¦çš„一些关于C++å’Œé¢å‘对象的皮毛没忘光光,所以费点周折熟悉了JDK的环境之å?接下æ¥çš„事情ž®±å¥½åŠžå¤šäº?心里也è¸å®žå¤šäº?
  用String¾cÈ›´æŽ¥å®šä¹‰å—½W¦ä¸²å˜é‡æ¯”è“vCä¸è®¨åŽŒçš„æŒ‡é’ˆ,感觉¼‹®å®žå¥½çš„å¤?用惯了Object Pascal的我åQŒå¦‚æžœå†å›žåŽ»æ•? *,真è¦ç–¯æŽ‰ä¸å¯.
  数组的定义和C,C++好åƒç•¥æœ‰ä¸åŒåQŒè®°ä¸æ¸…了,先记下æ¥å†è¯´
  int[] number=new int[5]
  String[] message=new String[5]
  å˜é‡˜q™ä¸€éƒ¨åˆ†æƒŒ™“væ¥è¦äº¤å¾…的也ž®Þp¿™ä¹ˆå¤šå§ã€‚虽然是èœé¸ŸåQŒä½†æˆ‘也知é“,æ€ÀL˜¯å¦‚èµK‹¹©å¼ºèˆ¬åœ¨è¯æ³•ä¸Šé¢æÀLŠ çš„äh½Ž€ç›´æ˜¯ç™½ç—´:大多数情况下,æ¼‚äº®çš„ç¨‹åºæ ¹æœ¬ä¸éœ€è¦æ— 谓的点缀,工工整整,æ€èµ\清晰ž®±å¯ä»¥äº†.
  倒是对于Java½E‹åºçš„æ¡†æž¶æˆ‘倒想备忘一ä¸?一个简å•çš„java½E‹åºå¥½åƒæ˜¯åº”该是˜q™æ ·çš„æ¡†æž?
class ProgramName
{
public static void main(String[] args)
{
file://½E‹åºçš„主ä½?BR> }
public static int othermethod()
{
file://其它æ–ÒŽ³•
}
}
  整个½E‹åºåœ¨ä¸€ä¸ªå¤§çš„ç±»ä¸?˜q™ä¸ª¾cÈš„概念应该ž®Þp·Ÿpascal里é¢çš„å•元差ä¸å¤šçš„。åŒpascal一æ ?æ–‡äšgå也è¦ä¸Žå•å…ƒå?在这里是¾cÕd-一æ ?Java对大ž®å†™è¦æ±‚çš„éžå¸æ€¸¥æ ?æˆ‘è¯æ³•é”™äº†å¥½å‡ æ¬¡éƒ½æ˜¯å› äØ“˜q™ä¸ª.
  Java½E‹åºž®±æ˜¯ç”׃¸€ä¸ªæˆ–者多个或者很多个æ–ÒŽ³•åœ¨è¿™æ ·ä¸€ä¸ªå¤§¾cÕd½“ä¸ç»„æˆçš„.
  在如上的代ç ä¸?定义æ–ÒŽ³•çš„å‚æ•°è¡¨½Cºçš„æ„æ€åˆ†åˆ«äØ“:
  publicè¡¨ç¤ºæ¤æˆå‘˜å‡½æ•°æ˜¯å…¬æœ‰çš„,å¯ä»¥è¢«å…¶ä»–类直接调用
  static表示mainæˆå‘˜å‡½æ•°åœ¨ProgramName¾cÈš„æ‰€æœ‰å¯¹è±¡ä¸æ˜¯å”¯ä¸€çš„,Javaž®†äØ“å…¶åˆ†é…æ°¸ä¹…å˜å‚¨ç©ºé—?