锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
聽浠庝腑浠繪剰鍙朜涓?N<=6)鏉ユ帓鍒?
宸茬煡 a 鍙兘涓?b 鐩歌繛,聽
聽聽聽聽聽聽聽聽 b涓嶈兘鍜宔,f鐩歌繛
聽聽聽聽聽聽聽聽聽c涓嶈兘鍜宎鐩歌繛
聽聽聽聽聽聽聽聽 d涓嶈兘鍜?a ,e鐩歌繛
聽聽聽聽聽聽聽聽聽聽聽f 涓嶈兘鍜屄燼,b鐩歌繛
璇鋒墦鍗板嚭瀛楁瘝f鎴朾 鍦ㄦ湯灝劇殑緇勫悎欏哄簭,鐢↗ava瀹炵幇
鎴戠殑瑙g瓟:
聽聽聽 import java.util.*;
/**
聽*
聽* @author ShenXiaoliang
聽*
聽*/
public class DemoGraph {
聽
聽final static int VERTICE=6;
聽
聽private ArrayList<String> patheSet=new ArrayList<String>();
聽
聽private String[] ver={"a","b","c","d","e","f"};
聽
聽private int[][] graph=new int[6][6];
聽
聽private String path="";
聽
聽private boolean[] isVisit=new boolean[VERTICE];
聽
聽
聽public DemoGraph() {
聽聽
聽聽initiGraph();
聽聽for(int index=0;index<VERTICE;index++)
聽聽depthSearch(index);
聽聽show();
聽聽
聽}
聽
聽private void initiGraph(){
聽聽graph[0][1]=1;
聽聽graph[1][0]=1;
聽聽graph[1][2]=1;
聽聽graph[1][3]=1;
聽聽graph[2][1]=1;
聽聽graph[2][3]=1;
聽聽graph[2][4]=1;
聽聽graph[2][5]=1;
聽聽graph[3][1]=1;
聽聽graph[3][2]=1;
聽聽graph[3][5]=1;
聽聽graph[4][2]=1;
聽聽graph[4][5]=1;
聽聽graph[5][2]=1;
聽聽graph[5][3]=1;
聽聽graph[5][4]=1;
聽}
聽
聽private void depthSearch(int start){
聽聽
聽聽isVisit[start]=true;
聽聽path+=ver[start];
聽聽if(path.charAt(path.length()-1)=='f'||path.charAt(path.length()-1)=='b') patheSet.add(path);
聽聽for(int index=0;index<VERTICE;index++)
聽聽聽if(graph[start][index]==1&&isVisit[index]==false)
聽聽聽聽depthSearch(index);
聽聽聽else continue;
聽聽path=path.substring(0,path.length()-1);
聽聽isVisit[start]=false;
聽}
聽
聽
聽private void show(){
聽聽for(String pa:patheSet)
聽聽聽System.out.println(pa);
聽}
聽/**
聽 * @param args
聽 */
聽public static void main(String[] args) {
聽聽// TODO Auto-generated method stub
聽聽new DemoGraph();
聽}
}
聽聽聽聽聽聽聽聽聽
static void inti();
聽 Code:
聽聽 0:聽new聽#2; //class java/lang/String
聽聽 3:聽dup
聽聽 4:聽ldc聽#3; //String Hello
聽聽 6:聽invokespecial聽#4; //Method java/lang/String."<init>":(Ljava/lang/String;)V
聽聽 9:聽astore_0
聽聽 10:聽new聽#5; //class java/lang/StringBuilder
聽聽 13:聽dup
聽聽 14:聽invokespecial聽#6; //Method java/lang/StringBuilder."<init>":()V
聽聽 17:聽aload_0
聽聽 18:聽invokevirtual聽#7; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
聽聽 21:聽ldc聽#3; //String Hello
聽聽 23:聽invokevirtual聽#7; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
聽聽 26:聽invokevirtual聽#8; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
聽聽 29:聽astore_0
聽聽 30:聽return
}
浠旂粏鐪嬩竴涓嬫垜鍋氱殑鏍囪錛孞VM緇欐垜浠敓鎴愪簡涓涓猄tringBuilder綾匯傦紙鎴戠敤鐨勬槸JDK5錛屾棫鐗堟湰鏄疭tringBuffer綾伙紝鍗曞崟榪欎竴鐐瑰皬鏀瑰姩灝辮兘璁㎎ava鐨勯熷害鎻愰珮寰堝錛夈傝鍚庣敤append鏂規硶杞藉叆Hello鍜學orld涓や釜String鐨勫紩鐢紙鏄庣‘鍦拌杞寲鎴愬瓧絎︽暟緇勶級銆?br />褰撹澆鍏ュ畬鎴愬悗錛孲tringBuilder瀹炰緥璋冪敤toString錛岀敓鎴愪竴涓柊鐨凷tring瀹炰緥錛堟殏鏃剁О涓篢empString)銆?br />聽鏈鍚庢妸寮曠敤a鎸囧悜TempString
鎬葷粨錛氫袱鍙ヨ鍙ユ誨叡鐢熸垚浜?涓垨5涓狫ava綾誨疄渚?br />
PS錛欽ava涓病鏈夋寚閽堝疄鍦ㄦ槸澶笉鏂逛究浜嗐傜壒鍒槸鍦ㄦ搷浣滃師濮嬫暟鎹被鍨嬬殑鏃跺欍備釜浜鴻涓篔ava搴旇鍦ㄨ繖鐐逛笂瀛﹀C錛冦傛寚閽堜笉鏄椽姘寸寷鍏斤紝瀵逛紭縐紼嬪簭鍛樿岃█錛屾寚閽堟槸緙栫▼涓殑涓縐嶄韓鍙椼?br />聽聽聽聽聽聽聽 甯屾湜鈥滄搗璞氣濓紙Java7錛夎兘鍑虹幇鎸囬拡鍚э紞錛嶏紞寰堜笉鐜板疄錛岃繕鏄瓑寮婧愬悗鐨凧ava鐗堟湰鍚?br />
濡傛灉鐢ㄦ埛鏄粠鏃х増鏈?JDK 鍗囩駭鑰屾潵錛屽垯鍚姩璁劇疆鍙兘鍖呮嫭涓嶅啀闇瑕佺殑 CLASSPATH 璁劇疆銆傝繖鏃跺簲璇ュ垹闄や換浣曢潪搴旂敤紼嬪簭鐗瑰畾鐨勮緗傛湁浜涗嬌鐢?Java 铏氭嫙鏈虹殑絎笁鏂瑰簲鐢ㄧ▼搴忓彲鑳戒慨鏀?CLASSPATH 鐜鍙橀噺浠ュ寘鎷畠浠嬌鐢ㄧ殑綾誨簱銆傝繖縐嶈緗彲浠ヤ繚鐣欍?
鍙氳繃鍦ㄨ皟鐢?JVM 鎴栧叾浠?JDK 宸ュ叿鏃朵嬌鐢?Java 宸ュ叿鐨?-classpath 閫夐」鏀瑰彉綾昏礬寰勶紙渚嬪錛?java -classpath ...錛夈傝繖鏄敼鍙樼被璺緞鐨勯閫夋柟娉曘傝繕鍙氳繃浣跨敤 CLASSPATH 鐜鍙橀噺鏀瑰彉綾昏礬寰勩?
娉ㄦ剰錛欽DK 1.2 緙虹渷綾昏礬寰勬槸褰撳墠鐩綍銆傝緗?CLASSPATH 鍙橀噺鎴栦嬌鐢?-classpath 鍛戒護琛屽紑鍏沖皢瑕嗙洊緙虹渷鍊鹼紝鍥犺屽鏋滄兂瑕佸湪鎼滅儲璺緞涓寘鎷綋鍓嶇洰褰曪紝鍒欏繀欏誨湪鏂拌緗腑鍖呮嫭鈥?鈥濄?br />綾誨彲浠ュ瓨鍌ㄥ湪鐩綍錛堟枃浠跺す錛夋垨褰掓。鏂囦歡錛堜緥濡?classes.zip 鎴?classes.jar錛変腑銆傛湁鍏沖綊妗f枃浠剁殑璇︾粏淇℃伅鍜岀被璺緞鐨勫伐浣滃師鐞嗭紝鍙傝鏈枃妗f渶鍚庣殑鐞嗚В綾昏礬寰勫拰鍖呭悕銆?
聽
閲嶈璇存槑錛欽DK 鏃х増鏈湪緙虹渷綾昏礬寰勪腑榪樺寘鎷?<jdk-dir>/classes 欏廣傝鐩綍浠呬緵 JDK 浣跨敤錛屼笖涓嶇敤浜庡簲鐢ㄧ▼搴忕被銆傚簲鐢ㄧ▼搴忕被搴旇鏀劇疆鍦?JDK 澶栭儴鐨勭洰褰曘傝繖鏍鳳紝瀹夎鏂?JDK 鏃朵笉蹇呴渶瑕侀噸鏂板畨瑁呭簲鐢ㄧ▼搴忓簱銆備負浜嗕笌鏃х増鏈殑鍏煎鎬э紝浣跨敤 <jdk-dir>/classes 鐩綍浣滀負綾誨簱鐨勫簲鐢ㄧ▼搴忓湪褰撳墠鐗堟湰涓粛鑳借繍琛岋紝浣嗕笉鑳戒繚璇佸湪浠ュ悗鐨勭増鏈腑瀹冧滑榪樿兘榪愯銆?
浣跨敤 Java 宸ュ叿鐨?-classpath 閫夐」
Java 宸ュ叿 java銆乯db銆乯avac 鍜?javah 鍏鋒湁 -classpath 閫夐」錛屽湪宸ュ叿榪愯鏃跺畠灝嗗彇浠g己鐪佺被璺緞鎴栫敱 CLASSPATH 鐜鍙橀噺鎵鎸囧畾鐨勭被璺緞銆傝繖鏄敼鍙樼被璺緞璁劇疆鐨勬帹鑽愭柟娉曪紝鍥犱負榪欐牱姣忎釜搴旂敤紼嬪簭鍙叿鏈夊畠鎵闇鐨勭被璺緞鑰屽張涓嶄細騫叉壈鍏朵粬搴旂敤紼嬪簭銆?
榪愯鏃跺伐鍏?java 鍜?jdb 榪樺叿鏈?-cp 閫夐」銆傝閫夐」鏄?-classpath 鐨勭緝鍐欍?
瀵逛簬闈炲父鐗規畩鐨勬儏鍐碉紝java 鍜?javac 閮藉叿鏈夊紑鍏籌紝浣垮緱鍙敼鍙樺畠浠嬌鐢ㄧ殑璺緞浠ユ煡鎵懼畠浠嚜宸辯殑綾誨簱銆備絾鏄紝緇濆ぇ澶氭暟鐢ㄦ埛浠庢潵閮戒笉浼氱敤鍒拌繖浜涘紑鍏熾?/p>
浣跨敤 CLASSPATH 鐜鍙橀噺
濡傚墠涓鑺備腑鎵榪幫紝涓鑸敤鎴峰皢鎯寵浣跨敤 -classpath 鍛戒護琛岄夐」銆傛湰鑺傚皢浠嬬粛濡備綍璁劇疆 CLASSPATH 鐜鍙橀噺鎴栨竻闄や互鍓嶅畨瑁呴仐鐣欎笅鐨勮緗?
璁劇疆 CLASSPATH
鍦?DOS 鎻愮ず絎︿笅錛屽彲鐢?set 鍛戒護淇敼 CLASSPATH 鐜鍙橀噺銆傚叾鏍煎紡涓猴細
聽聽 set CLASSPATH=path1;path2 ...
璺緞搴旇浠ユ寚瀹氶┍鍔ㄥ櫒鐨勫瓧姣嶅紑澶達紝渚嬪 C:\...銆傝繖鏍鳳紝鍦ㄥ伓鐒跺垏鎹㈠埌涓嶅悓椹卞姩鍣ㄦ椂浠嶅彲鎵懼埌綾伙紙渚嬪錛屽鏋滆礬寰勯」浠?\... 寮澶達紝騫朵笖褰撳墠浣嶄簬椹卞姩鍣?D: 涓婏紝鍒欐墍闇鐨勭被灝嗗湪 D: 鑰屼笉鏄?C: 椹卞姩鍣ㄤ笂鎵撅級銆?
娓呴櫎 CLASSPATH
濡傛灉 CLASSPATH 鐜鍙橀噺琚緗垚涓嶆紜殑鍊鹼紝鎴栧惎鍔ㄦ枃浠舵垨鑴氭湰紼嬪簭璁劇疆浜嗕笉姝g‘璺緞錛屽垯鍙氳繃浣跨敤涓嬪垪鍛戒護娓呴櫎 CLASSPATH錛?
聽 C:> set CLASSPATH=
璇ュ懡浠や粎娓呴櫎褰撳墠浼氳瘽鐨?CLASSPATH銆傝紜繚鍦ㄤ互鍚庣殑浼氳瘽涓叿鏈夋紜殑 CLASSPATH 璁劇疆錛屽垯搴旇鍒犻櫎鎴栦慨鏀瑰惎鍔ㄨ緗?
鏇存敼鍚姩璁劇疆
濡傛灉鍦ㄧ郴緇熷惎鍔ㄦ椂璁劇疆 CLASSPATH 鍙橀噺錛屽垯鏌ユ壘瀹冪殑浣嶇疆鍙栧喅浜庢墍浣跨敤鐨勬搷浣滅郴緇燂細
聽 鎿嶄綔緋葷粺 鏂規硶
Windows 98 鍜?
Windows 95 媯鏌?autoexec.bat 鏂囦歡涓殑 set 鍛戒護銆?
Windows NT 鍚姩鈥滄帶鍒墮潰鏉庫濓紝閫夋嫨鈥滅郴緇熲濓紝鍗曞嚮鈥滅幆澧冣濋夐」鍗★紝騫跺湪鈥滅敤鎴峰彉閲忊濋儴鍒嗕腑錛屾鏌?CLASSPATH 鍙橀噺銆?
鐞嗚В綾昏礬寰勫拰鍖呭悕
Java 綾昏緇勭粐鎴愬寘錛岃岃繖浜涘寘琚槧灝勫埌鏂囦歡緋葷粺涓殑鐩綍銆備絾鏄笌鏂囦歡緋葷粺涓嶅悓鐨勬槸錛屾棤璁轟綍鏃舵寚瀹氬寘鍚嶏紝閮藉簲鎸囧畾瀹屾暣鍖呭悕 -- 姘歌繙涓嶈浠呮寚瀹氬畠鐨勪竴閮ㄥ垎銆備緥濡傦紝java.awt.Button 鐨勫寘鍚嶆繪槸搴旀寚瀹氫負 java.awt銆?
渚嬪錛屽亣瀹氭兂瑕?Java 榪愯鐜鍦ㄥ寘 utility.myapp 涓煡鎵懼悕涓?Cool.class 鐨勭被銆傚鏋滆鐩綍鐨勮礬寰勪負 C:\java\MyClasses\utility\myapp錛屽垯搴旇灝嗙被璺緞璁劇疆鎴愬寘鍚?C:\java\MyClasses銆?
瑕佽繍琛岃搴旂敤紼嬪簭錛屽彲浣跨敤涓嬭堪 JVM 鍛戒護錛?
C:>聽 java -classpath C:\java\MyClasses utility.myapp.Cool
褰撹搴旂敤紼嬪簭榪愯鏃訛紝JVM 浣跨敤綾昏礬寰勮緗煡鎵懼湪 utility.myapp 鍖呬腑瀹氫箟鐨勪換浣曞叾浠栫被銆?
娉ㄦ剰錛氬簲鍦ㄥ懡浠や腑鎸囧畾瀹屾暣鍖呭悕銆備緥濡傦紝璁劇疆綾昏礬寰勫寘鍚?C:\java\MyClasses\utility 騫朵嬌鐢ㄥ懡浠?java myapp.Cool 鏄笉鍙兘鐨勶紝鍥犱負榪欐壘涓嶅埌璇ョ被銆?
錛堟偍鍙兘鎯崇煡閬撶敤浠涔堝畾涔夌被鐨勫寘鍚嶃傜瓟妗堟槸錛氬寘鍚嶆槸綾葷殑涓閮ㄥ垎錛屽茍涓斾笉鑳戒慨鏀癸紝闄ら潪閲嶆柊緙栬瘧璇ョ被銆傦級
娉ㄦ剰錛氬寘瑙勮寖鏈哄埗涓涓湁瓚g殑緇撴灉鏄紝灞炰簬鐩稿悓鍖呯殑澶氫釜鏂囦歡瀹為檯涓婂彲瀛樺湪浜庝笉鍚岀殑鐩綍涓傚浜庢瘡涓被錛屽寘鍚嶉兘鏄浉鍚岀殑錛屼絾鏄瘡涓枃浠剁殑璺緞鍙粠綾昏礬寰勪腑鐨勪笉鍚岀洰褰曞紑濮嬨?br />鏂囦歡澶瑰拰褰掓。鏂囦歡
褰撶被瀛樺偍鍦ㄧ洰褰曪紙鏂囦歡澶癸級涓椂錛屼緥濡?c:\java\MyClasses\utility\myapp錛屽垯綾昏礬寰勯」鎸囧悜鍖呭惈鍖呭悕絎竴涓厓绱犵殑鐩綍錛堝湪榪欓噷涓?C:\java\MyClasses錛屽洜涓哄寘鍚嶆槸 utility.myapp錛夈?
浣嗘槸褰撶被瀛樺偍鍦ㄥ綊妗f枃浠訛紙.zip 鎴?.jar 鏂囦歡錛変腑鏃訛紝綾昏礬寰勯」鍒欐槸璇?.zip 鎴?.jar 鏂囦歡鐨勮礬寰勩備緥濡傦紝瑕佷嬌鐢ㄤ綅浜?.jar 鏂囦歡涓殑綾誨簱錛屽垯鍛戒護搴旇綾諱技涓嬭堪褰㈠紡錛?
聽聽 java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
澶氶噸鎸囧畾
瑕佸湪鐩綍 C:\java\MyClasses 鍜?C:\java\OtherClasses 涓煡鎵劇被鏂囦歡錛屽垯鍙皢綾昏礬寰勮緗負錛?
聽聽 java -classpath C:\java\MyClasses;C:\java\OtherClasses ...
娉ㄦ剰涓や釜璺緞涔嬮棿鐢ㄥ垎鍙峰垎闅斻?
鎸囧畾嬈″簭
鎸囧畾澶氫釜綾昏礬寰勯」鐨勬搴忔槸鐩稿綋閲嶈鐨勩侸ava 瑙i噴鍣ㄥ皢鎸夌収鐩綍鍦ㄧ被璺緞鍙橀噺涓殑嬈″簭鍦ㄥ悇涓洰褰曚腑鏌ユ壘綾匯傚湪涓婁緥涓紝Java 瑙i噴鍣ㄩ鍏堝湪鐩綍 C:\java\MyClasses 涓煡鎵鵑渶瑕佺殑綾匯傚彧鏈夊綋瀹冨湪璇ョ洰褰曚腑娌℃湁鎵懼埌璇ョ被鏃訛紝瑙i噴鍣ㄦ墠鑳藉埌 C:\java\OtherClasses 鐩綍涓煡鎵?/p>