我正在嘗試編譯導入某些servlet庫的簡單類。由於我沒有將tomcat目錄添加到類路徑中,因此讓系統知道在何處查找tomcat/lib文件夾中找到的servlet庫的最佳實踐方法是什麼?Java編譯提供了有關servlet庫的錯誤
目前,該系統只是給象這樣的錯誤:
ackage javax.servlet does not exist
[javac] import javax.servlet.ServletException;
我正在嘗試編譯導入某些servlet庫的簡單類。由於我沒有將tomcat目錄添加到類路徑中,因此讓系統知道在何處查找tomcat/lib文件夾中找到的servlet庫的最佳實踐方法是什麼?Java編譯提供了有關servlet庫的錯誤
目前,該系統只是給象這樣的錯誤:
ackage javax.servlet does not exist
[javac] import javax.servlet.ServletException;
這取決於你的IDE。每個好的Java IDE都提供了一種指定額外類路徑的方法。
如果您使用Maven作爲構建工具,最好的方法是爲這些庫指定一個「提供的」作用域。他們將在編譯時使用,但在最後的戰爭不是包裝:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
我不使用Maven,並且我試圖弄清楚這一點,而不包括IDE。 – Genadinik 2011-04-08 20:54:04
如果您在使用ecplise,你可以從其他文件夾添加到application server runtime library
您的構建路徑,也可以add jar
到Java構建路徑配置。
所以你實際上在問如何使用javac
來編譯一個servlet類?您只需要將通用Java方法中的依賴關係置於編譯時類路徑中即可。這與Servlet或其他東西沒有特別的關係。
您可以使用javac
的參數-cp
或-classpath
作爲參數。它接受用於打包根文件夾和JAR文件的冒號分隔字符串(相對)路徑。
javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.java
在classpath中.
代表當前目錄。在Windows中,路徑分隔符就是分號。
我在eclipse中遇到了同樣的問題。
爲了解決這個問題,
右鍵單擊在項目資源管理您的Web項目 - >屬性 - >項目構面 - >按ALT + R - >選擇服務器你想要的 - >應用 - >確定和完成。
注: 我使用Eclipse Helios。
你應該已經在eclipse中添加了服務器。 Installing Apache Tomcat Server in eclipse
你的環境是什麼?蝕? NetBeans的? Maven的?螞蟻? CLI與純javac? – musiKk 2011-04-08 20:49:13
@musiKk我在Ubuntu中使用Eclipse。但是,這不應該獨立於IDE? – Genadinik 2011-04-08 20:52:32
它與您用於編譯的工具有關。如果您使用IDE進行編譯,那麼您必須將它設置在您的IDE中,以便它能正常工作。無論如何,這只是將jar(servlet.jar)添加到classpath中,這是IDE添加到其中的方式。 – SJuan76 2011-04-08 20:57:19