【问题标题】:How to compile a Servlet from command prompt? [duplicate]如何从命令提示符编译 Servlet? [复制]
【发布时间】:2013-01-17 11:35:58
【问题描述】:

可能重复:
Trying to build from the command line, and produce a WAR file

这是一个简单的 HelloWorld Servlet。我使用的是 Windows 7 并安装了 JDK 1.7.0 和 Apache Tomcat 7.0.14。

我不知道把文件放在哪里。

我不想使用 IDE,因为我想了解实际工作原理。

【问题讨论】:

  • 从命令行使用 javac
  • 编译是一回事。要部署到 Tomcat,您还需要将编译后的代码打包为 WAR 文件。希望这里的答案之一也能告诉您如何做到这一点。
  • @TomAnderson 你没有,但你可以。只要文件最终放在正确的位置,无论是 Tomcat 将它们解包还是手动放置都没有关系。
  • @DaveNewton:是的。不过,它们仍然需要以正确的结构布局,对吧?

标签: java servlets command-prompt


【解决方案1】:

我认为这是个好主意,我希望更多人这样做。

只要您的源代码文件位于正确的包目录结构中,这并不重要。如果您需要更多详细信息,请参阅this package tutorial

当您编译时,您将需要类路径中的 Servlet API jar,例如,如果您位于源代码树的顶部:

javac -cp path/to/servlet-api.jar;. path\to\File.java

您的.class 文件将与您的源文件位于同一目录中,但目前还可以。如果您的路径或类路径有问题,请参阅 this classpath tutorial

有很多地方可以获取 Servlet API jar 文件,例如在 Tomcat lib 目录中。

完成后,您需要创建一个 WAR 文件,或者单独部署应用的组件。 WAR 文件和 Web 应用程序遵循特定的目录布局,documented here

简而言之:

. (Project root)
├── WEB-INF
│   ├── classes (Your compiled classes, in project directory hierarchy)
│   │   ├── HelloWorldExample.class
│   │   ├── HelloWorldExample.java
│   │   └── LocalStrings.properties
│   ├── jsp (JSPs used as forward targets; not directory accessible to clients)
│   ├── lib (Third-party libraries, including your own)
│   │   ├── jstl.jar
│   │   └── standard.jar
│   ├── tags
│   │   └── helloWorld.tag
│   └── web.xml (Web app configruation file)
└── index.jsp (JSPs directly accessible from clients)

【讨论】:

  • 请注意,在 Windows 上(OP 提到他使用 Windows 7),您需要使用 \ 作为路径分隔符和 ; 来分隔类路径中的条目(而不是 / 和 @987654329 @)。
  • @Jesper 哎呀;编辑以反映实际情况。
【解决方案2】:

一些步骤。

C:\>set CATALINA_HOME=\rene\Tomcat_7.0.14

C:\web-app\src>javac -classpath %CATALINA_HOME%\common\lib\servlet-api.jar WebTest.java

WebTest.java 是你的 servlet

在这里你可以找到一个很棒的教程

Creating a Java Web Application

【讨论】:

  • +1 为路径使用环境变量。
  • 您能否展示一下如何创建 WAR 文件?使用 WEB-INF/classes 中的类文件,以及一个简单的 web.xml。
  • 我提供的链接包含所有步骤。
【解决方案3】:

用于编译servlet

javac -classpath C:\apache-tomcat-7.0.13\lib\servlet-api.jar HelloWorldServlet.java

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 2016-01-24
    • 2011-12-28
    • 1970-01-01
    • 2016-04-23
    • 2017-07-14
    • 2011-04-04
    • 1970-01-01
    相关资源
    最近更新 更多