2012-04-28 81 views
2

我想從命令提示符編譯一個非常基本的servlet,但它始終不成功,編譯器告訴我下面的:如何從命令提示符編譯servlet?

error: package javax.servlet does not exist. 

我用Google搜索解決方案,我發現我需要包括servlet.jar庫到我的路徑。 我相信我做到了。 我堅信,在我的電腦這些庫中的位置是:

C:\apache-tomcat-7.0.23\lib\servlet-api.jar\ 

和我的路徑末端(相關部分)如下:

%JAVA_HOME%\bin;C:\apache-tomcat-7.0.23\lib\servlet-api.jar\ 

對於我來說,它看起來確定,但顯然不是。誰能告訴我可能是什麼問題?

+0

你爲什麼不使用tomcat? – Ketan 2012-04-28 13:07:26

+1

路徑和類路徑是不同的東西。 – 2012-04-28 13:07:53

回答

8

類路徑而不是路徑......你不需要它作爲一個環境現狀變量。 您可以使用選項-cp或-classpath設置javac的類路徑(其他幾種方法也可用)。 javac的使用環境變量CLASSPATH來尋找類,這可能是有用的,也可以是難以跟蹤下問題的根源。

來編譯使用庫(即類與標準的JavaSE外)的Java文件的一個例子是:

javac -classpath C:\apache-tomcat-7.0.23\lib\servlet-api.jar MyTestServlet.java 

,如果你的環境變量CLASSPATH包含你需要你可能想要做的庫:

javac -classpath %CLASSPATH%;C:\apache-tomcat-7.0.23\lib\servlet-api.jar MyTestServlet.java 

(請注意,我沒有訪問到Windows機器,因此沒有測試上面的語法的特質部分) (也注意到,在這個例子中「C:​​\阿帕奇-tomcat-7.0.23 \ lib \ servlet-api.jar「是一個jar文件,而不是它可能是從你的問題你的機器上的一個目錄) 對於命令行編譯在Windows操作系統上它是有環境變量JAVA_HOME正確設置和JDK在PATH bin目錄是個好主意。

我不過建議得到通過/在servlet開發的IDE搞清楚如何只用JDK從命令行做到這一點之前寫編譯執行部署。 Java Servlets不是獨立的可執行類,但需要部署到例如tomcat以進行測試/使用。

+0

+1用於避免CLASSPATH環境變量,這可能會導致意外的行爲。儘管如此,爲了完整起見,最好包括一個例子。 – 2012-04-28 13:43:50

+0

同意一個例子,但我在十年左右沒有在java中看到過一個windows路徑。我會盡力更新。 – esej 2012-04-28 14:25:14

+0

但它會是一個類路徑的例子;唯一的區別是在Windows中的分隔符''',在真實操作系統中''''。並用空格引用路徑,儘管'\'也可能工作 - 我也不記得Windows的東西 - 這是真棒:D – 2012-04-28 14:26:51

1

首頁複印從以下路徑

C:\apache-tomcat-7.0.23\lib\servlet-api.jar;

和現在沿着路徑

C:\java\jdk1.6\bin;

希望它粘貼到Java軟件的bin文件夾中的servlet-api.jar文件文件你可以成功編譯你的servlet程序。

1

1.You可以在JDK1.6 \ lib文件夾複製您的javax.servlet.jar。 2。你可以去控制面板\系統\高級系統屬性\環境變量

enter image description here

輸入CLASSPATH變量的jar的位置,如下所示:

enter image description here

然後編譯並運行該servlet。

相關問題