[英]Trying to build from the command line, and produce a WAR file
我的文件夾布局是:
/web-inf/web.xml /web-inf/classes/
HelloWorld.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("<html>");
pw.println("<head><title>Hello World</title></title>");
pw.println("<body>");
pw.println("<h1>Hello World</h1>");
pw.println("</body></html>");
}
}
我要執行以下操作:
我應該將HelloWorld.java
文件放在哪里,以及如何使用命令行對其進行編譯? 我相信HelloWorld.java
的輸出位於/classes/
文件夾中。
然后,如何生成.war
文件?
我試過像這樣手動編譯:
javac HelloWorld.java
而且我遇到了與導入有關的錯誤,即在我的路徑中找不到庫。 是否需要下載Java EE庫並將其添加到我的路徑中?
您的代碼取決於Servlet API,該API不在核心Java庫中。 您將需要將其添加到您的類路徑中:
javac -classpath $TOMCAT_HOME/lib/servlet-api.jar yourpackage/HelloWorld.java
WAR與JAR(具有UTF-8文件名的ZIP)共享相同的文件格式。通常,您可以使用ZIP實用程序來使用它們。
WAR結構可能如下所示:
index.html
foo.jsp
WEB-INF/classes/yourpackage/HelloWorld.class
WEB-INF/web.xml
以上假設您已經package yourpackage;
.java文件中的聲明。 應避免使用默認軟件包。
如果這只是一個玩具項目,那可能不值得您花時間,但是我建議您采用一種嚴肅的構建工具,因為跟蹤所需的所有庫很快將變得難以管理。 我使用的是Maven ,但還有其他選擇。
您必須使用jar命令並將依賴項添加到classpath
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.