2011-04-08 39 views
0

我正在嘗試編譯導入某些servlet庫的簡單類。由於我沒有將tomcat目錄添加到類路徑中,因此讓系統知道在何處查找tomcat/lib文件夾中找到的servlet庫的最佳實踐方法是什麼?Java編譯提供了有關servlet庫的錯誤

目前,該系統只是給象這樣的錯誤:

ackage javax.servlet does not exist 
[javac] import javax.servlet.ServletException; 
+0

你的環境是什麼?蝕? NetBeans的? Maven的?螞蟻? CLI與純javac? – musiKk 2011-04-08 20:49:13

+0

@musiKk我在Ubuntu中使用Eclipse。但是,這不應該獨立於IDE? – Genadinik 2011-04-08 20:52:32

+1

它與您用於編譯的工具有關。如果您使用IDE進行編譯,那麼您必須將它設置在您的IDE中,以便它能正常工作。無論如何,這只是將jar(servlet.jar)添加到classpath中,這是IDE添加到其中的方式。 – SJuan76 2011-04-08 20:57:19

回答

2

如果您希望只使用了Java提供的工具,你將不得不看的JavaDoc javac工具並添加所需的手工加入班級路徑。

除非這是一個學習練習,並且您正試圖做到這一點,否則我會建議您研究Maven,Ant或您最喜歡的IDE,因爲它們將在您未來的職業生涯中更加有用。

+0

是的,我剛開始試圖理解如何在正確的方式下做到這一點,然後才能通過IDE輕鬆完成此任務。 – Genadinik 2011-04-08 23:26:32

+0

如果您正在使用IDE,則以正確的方式對其進行配置。 – musiKk 2011-04-09 14:10:38

0

這取決於你的IDE。每個好的Java IDE都提供了一種指定額外類路徑的方法。

如果您使用Maven作爲構建工具,最好的方法是爲這些庫指定一個「提供的」作用域。他們將在編譯時使用,但在最後的戰爭不是包裝:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet</artifactId> 
    <version>2.1</version> 
    <scope>provided</scope> 
</dependency> 
+0

我不使用Maven,並且我試圖弄清楚這一點,而不包括IDE。 – Genadinik 2011-04-08 20:54:04

1

如果您在使用ecplise,你可以從其他文件夾添加到application server runtime library您的構建路徑,也可以add jar到Java構建路徑配置。

1

所以你實際上在問如何使用javac來編譯一個servlet類?您只需要將通用Java方法中的依賴關係置於編譯時類路徑中即可。這與Servlet或其他東西沒有特別的關係。

您可以使用javac的參數-cp-classpath作爲參數。它接受用於打包根文件夾和JAR文件的冒號分隔字符串(相對)路徑。

javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.java 

在classpath中.代表當前目錄。在Windows中,路徑分隔符就是分號。

1

我在eclipse中遇到了同樣的問題。

爲了解決這個問題,

右鍵單擊在項目資源管理您的Web項目 - >屬性 - >項目構面 - >按ALT + R - >選擇服務器你想要的 - >應用 - >確定和完成。

注: 我使用Eclipse Helios。

你應該已經在eclipse中添加了服務器。 Installing Apache Tomcat Server in eclipse