Posted on 2008-07-31 15:45
朱 閱讀(205)
評(píng)論(0) 編輯 收藏
今天看翁愷的教程,講JAVA基礎(chǔ),提到CLASSPATH...so bad...慚愧啊..只知道是環(huán)境變量..卻不知道是做什么用的,以前只知道要set classpath=什么什么,至于為什么這么設(shè),是作什么用的卻還不知道,今天試了試..才有原來(lái)如此的感覺(jué)..
我的理解,CLASSPATH是針對(duì).class文件的,它是一個(gè)路徑,能夠讓系統(tǒng)自動(dòng)的去某個(gè)目錄下去尋找你所要運(yùn)行的.class文件..
設(shè)置CLASSPATH,可以在系統(tǒng)下電腦屬性里的環(huán)境變量里直接添加,也可以自己創(chuàng)建一個(gè).bat文件,輸入set classpath=d:\javatest;.;這里可以設(shè)置多個(gè)路徑,‘.’代表當(dāng)前目錄.然后在DOC下執(zhí)行這個(gè).bat文件就OK了。這樣我把.class文件放在d:\javatest下,無(wú)論我在哪JAVA這個(gè).class文件,它都能夠被正常執(zhí)行.
再有,關(guān)于package,如果一個(gè)a.java文件定義了一個(gè)package javatest;(當(dāng)然a.java在javatest這個(gè)目錄里)
編譯的時(shí)候需要在javatest的目錄下執(zhí)行JAVAC指令。此時(shí)會(huì)在當(dāng)前目錄生成一個(gè)a.class文件(假設(shè)只有一個(gè)a類(lèi)),但是此時(shí)這個(gè)文件的名字不再是A,而是多了一個(gè)姓,姓javatest,也就是說(shuō),我直接在當(dāng)前目錄下執(zhí)行java a系統(tǒng)會(huì)提示找不到目標(biāo)文件。所以在運(yùn)行這個(gè)a.class的時(shí)候需要這樣執(zhí)行java javatest.a..
這個(gè)時(shí)候需要注意的是,系統(tǒng)同樣會(huì)在CLASSPATH的目錄下尋找javatest這個(gè)目錄.如果CLASSPATH此時(shí)被設(shè)置為set classpath=d:\javatest;.;那么在當(dāng)前目錄下(d:\javatest)下執(zhí)行java javatest.a,系統(tǒng)會(huì)報(bào)錯(cuò),因?yàn)樵诋?dāng)前目錄(d:\javatest)和d:\javatest目錄下找不到目標(biāo)文件,正確的做法是在d:\下執(zhí)行java javatest.a..
呵呵,原來(lái)接觸的時(shí)候很亂,現(xiàn)在終于有了那么一點(diǎn)思路,還有待慢慢學(xué)習(xí)...
