簡體   English   中英

嘗試從命令行進行構建,並生成一個WAR文件

[英]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>");
  }
}

我要執行以下操作:

  1. 通過命令行構建所有內容
  2. 使用.war文件發布到Tomcat的webapps目錄

我應該將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM