java入門學習六——說說路徑

????????這節(jié)其實不只是和java有關,所有語言,所有操作系統(tǒng)都應該有這個概念——我們也稱其為路徑。這節(jié)本來想放在【java入門學習五】中的。想了一下,當年自己在這個上面也吃了很多虧,所以單拿一節(jié)出來說說。很多初學者一直搞不明白,當前路徑,上一級,下一級,同級路徑;導致出現很多問題。

首先大概說下,一個程序,不完全是我們全部寫出來。比如這個程序中,我們可能會用到一張圖片,一個mp3,等等的外部資源;那么我們就可以將其引入到我們的程序中。說個我的小故事:CS1.6在我的印象中,背景音樂(she is my sin)很酷,對不對?有一天突發(fā)奇想,我想知道這個音樂放在哪里,后來我在CS目錄下,找到了,一堆,其中一個就是這背景音樂,還包括,換槍等等的聲音,都在這里面。后來,我就想,是不是可以把這個背景音樂改了,如果沒有記錯,我應該是改成功了的。言歸正轉,所以說CS中有游戲聲音等等,這些外部資源都被CS程序讀到了,對不對?既然要正確的讀到,是不是我們應該拿到這些音樂所在的路徑。所以說路徑是不是很重要???廢話真多。

我現安了一個cs1.6,不過背景音樂不是shi is my sin,無所謂。進入游戲后,聽到的這個聲音,就是這個。所以你完全可以,大膽的,換一個HeiXu的聲音放在這里,名稱和格式要一致就行。給大家看看圖。

既然進入游戲時,我們能聽到這個音樂,那就說明,游戲一定是按照某一條路,來找到了這個文件;對,這就是我們要說的路徑。所以說我們不要把問題想得太復雜,軟件也是人寫的,所以我們用正常方式對待就行。。。

接下來,我們以編譯java類為例,來說明這個問題。

大家還記得吧,在java入門五中,loser使用的是javac HelloWorld.java來編譯源文件的?為什么loser使用javac時就可以找到HelloWorld.java呢?這里先放一個問題。

又是廢話一句:我們所寫的源文件是不是一定是存在我們硬盤上的某個位置的?比如E:\java\java_loser\java6\Test1.java

那么接下來,切換目錄到【E:\java\java_loser】下面

loser再運行javac命令,來編譯Test1.java

看到沒有,找不到文件?為什么,就是因為當前這個路徑下,沒有Test1.java,對不對?如圖

這里有一個很關鍵的點,就是你在執(zhí)行javac時,當前的路徑位置在哪里???從loser的cmd中可以看出,第一次執(zhí)行成功,當前的路徑是【E:\java\java_loser\java6】;第二次失敗時,當前的路徑是【E:\java\java_loser】。記住一點當前路徑是一直在變的,不是一個固定的路徑。

又舉個例子:有一所叫java的學校,這個學校中有一個叫javac的同學;現在javac同學收到一個任務【去幫老師改一份叫Test1.java的作業(yè)】。那么javac同學怎么才能拿到這份作業(yè)呢?

情景一:1、javac這個同學從學校大門來到學校中(當然可能已經在學校中了);2、來到學校后,去到1號教學樓;3、爬上5樓;4、走到505室;5、來到老師的辦工桌;6、拿到工位上的Test1.java的作業(yè)。下面我提取一下:地球—java學校—1號教學樓—5樓—505室—老師辦工桌。這就是一個完整的路徑。

你就是javac同學,現在你看到了Test1.java這份作業(yè),那么你就javac Test1.java,就成功了。那以想一想,如果javac同學不在老師的工位上,他能正確執(zhí)行嗎?當然不能。

情景二:接下來,情況有點變化:如果javac同學在學校中,1號教學樓3樓玩。那么javac同學是不是就可以直接去到5樓,再到505,再到老師辦工桌。路徑如下:5樓—505室—老師辦工桌。

情景一中,javac同學的當前路徑就是學校外,所以他要從學校一步一步的走。

情景二中,javac同學的當前路徑就是一號教學樓(3樓不屬于5樓這條路),所以他從5樓開始,最終到達老師的工位,幫都完成批改作業(yè)。

現在我們回到剛才的cmd中,來處理如下的問題。

前提說明:如圖中我們可以看出,javac這個同學位于java_loser這個位置,對不對?所以接下來,我們就是告訴javac同學,作業(yè)的位置。如下

我們告訴javac同學,你要先到達java6,然后就可以看到Test1.java作業(yè)了。所以javac從java_loser出發(fā),去到java6,最終看到了Test1.java,完成作業(yè)批改。

舉一反三,如果javac同學位于java這個位置,那么就應該如下

先去到java_loser,然后java6,再然后get work,最終done!!!

菜鳥loser,聲明一下,老鳥們可能會噴我了,說應該按絕對路徑,和相對路徑來講。loser以前也是從這種方式學過來的,但是發(fā)現有時候真的無法理解,所以菜鳥只能片面的認為,這種方式可能讓新人有點無法接受。所以loser這里不這么來,以后慢慢再把這兩個概念融入進來。如果有想聽我朋友,可以給我留言。

代碼地址https://github.com/shizhier/java_loser

大家記得這個不?loser當年的最愛,當年因為游戲,掉到年級倒數100名,因為她又回到前100名,后來就不玩游戲了,戒了也10多年了。loser是個容易失去目標的菜鳥,雖然沒有走到一起,再次祝福她。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。