搜尋此網誌

2019年10月26日 星期六

編譯時,jar檔的引入

緣起:


    最近開始對 Java 有興趣,有動力想學好它,尤其是用 Java 來寫後端的部分。這幾天想學 Servlet,不過,在編譯 java 檔時遇到了問題,所以,寫了這篇文章來紀錄。

見 Java 眼開




遇到的問題:


    我上網找了一個 Servlet 的範例,然後把他摳下來,接著要編譯時出了些問題。


    我在那資料夾開啟 cmd 然後打 javac TestWebServlet.java,結果跑出一堆錯誤訊習。


    大概的意思是,它編譯時找不到跟 javax.servlet 有關的類別。

部分程式碼

    這些引入的類別,JDK是沒有提供的,所以,我去網路上找了些資料,後來才知道,需要再額外下載些必需的 jar 檔來一起編譯,它才能編譯過。


解決:


    根據網路上的資料顯示,我們需要 Tomcat 程式資料夾的兩個 jar 檔。啊我之前就有下載 Tomcat 了,所以可以接拿來用。

在 Tomcat/lib 下的 jsp-api.jar 和 servlet-api.jar

把它們兩個放到跟 TestWebServlet.java 同個目錄

    再次使用命令列來編譯。

還是錯誤....

    嗯.... ,為啥 ? 我以為只要將檔案都放在同個目錄下,java 的編譯器就能找到它,事情沒有我想像的簡單,所以,我又去找了一些文章,找到了這篇

    所以,想要 java 檔在編譯時能引入其它的 jar 檔,必需這樣下指令

javac -cp jar檔的路徑  要被編譯的java檔


    如果有多個 jar 檔要引入,那麼,不同檔案的路徑彼此要用 ; 格開。

    所以,我在那個資料夾下開起 cmd ,輸入

javac  -cp  .\jsp-api.jar;.\servlet-api.jar  TestWebServlet.java


PS : 那個 ".\" 代表目前路徑。

沒有出現錯誤訊息了


成功,class 檔出現了


什麼是 .jar 檔:


    就查到的資料來理解,它是一個壓縮檔,裡面可以放很多的 class 檔案。嗯...,真的嗎 ? 我用解壓縮軟體打開它看看。


    哇,真的ㄟ,那些被 import 的檔案都有在裡面。

沒有留言:

張貼留言