緣起:
最近開始對 Java 有興趣,有動力想學好它,尤其是用 Java 來寫後端的部分。這幾天想學 Servlet,不過,在編譯 java 檔時遇到了問題,所以,寫了這篇文章來紀錄。
見 Java 眼開 |
遇到的問題:
我上網找了一個 Servlet 的範例,然後把他摳下來,接著要編譯時出了些問題。
大概的意思是,它編譯時找不到跟 javax.servlet 有關的類別。
這些引入的類別,JDK是沒有提供的,所以,我去網路上找了些資料,後來才知道,需要再額外下載些必需的 jar 檔來一起編譯,它才能編譯過。
部分程式碼 |
這些引入的類別,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 的檔案都有在裡面。
沒有留言:
張貼留言