使用javac命令编译Servlet,并将其放入tomcat中运行
- 首先我在桌面上新建了一个txt文件,编辑内容(内容来自菜鸟教程)为:
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; // 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException
{
// 执行必需的初始化
message = "Hello World";
} public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html"); // 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
} public void destroy()
{
// 什么也不做
}
}
保存,将文件命名为HelloWorld(和主类名一致),文件后缀为.java。
2. 然后按住shift键不放,鼠标右击桌面空白处,选择“在此处打开PowerShell窗口”,输入javac命令执行编译,报错如下。

解决办法:javac 有一个encoding参数,于是改为javac -encoding utf-8 .\HelloWorld.java,再次执行命令,错误如下。

解决办法:原来依赖的jar包还没导进去,要怎么导入呢?在环境变量->系统变量下,新建(如果没有的话)变量CLASSPATH,选择“浏览文件”,找到桌面上的jar文件(可以用Everything搜索jar包位置)。

再次执行,还是报错,重新打开PowerShell,编译成功。

3. 把生成的class文件放到tomcat目录如E:\Program Files\apache-tomcat-7.0.68下的webapps\ROOT\WEB-INF\classes文件夹下,我发现WEB-INF下没有classes文件,便新建了一个。
同时修改WEB-INF下的web.xml文件,在<web-app>标签中添加如下代码:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
4. 保存后,到tomcat目录下的bin文件下找到startup.bat双击运行。
等到出现如下信息,表示启动成功,注意http端口号,一般默认为8080。

5. 最后就可以在浏览器上输入localhost:8080/HelloWorld访问servlet了

使用javac命令编译Servlet,并将其放入tomcat中运行的更多相关文章
- 使用javac命令编译java文件。
今天想学习一下web services的知识,在网上找了一个教程,里面写了一个web services客户端调用,在cmd下执行的,但是没有给出用javac编译的细节.所以自己就借着这个机会学了一下: ...
- Java文件编译与反编译:javac命令和javap命令
1.创建一个Test.java文件,并输入内容 public class Test{ private int m; public int inc(){ return m + 1; } } 2.使用ja ...
- JAVAC 命令详解(转)
本文来自:http://www.cnblogs.com/JeffChen/archive/2008/01/16/1041783.html 结构 javac [ options ] [ sourcefi ...
- JAVAC 命令详解
转自:http://jeffchen.iteye.com/blog/395671 结构 javac [ options ] [ sourcefiles ] [ @files ] 参数可按任意次序排列. ...
- eclipse中的javac命令与java命令
一.eclipse的javac命令:当eclipse对.java(源文件)文件进行保存操作时(快捷键ctrl+s),会执行javac命令.见上图,Default output folder(默认输出文 ...
- java动态编译类文件并加载到内存中
如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...
- MySQL用source命令导入不记入binlog中【原创】
试验环境,MySQL主主复制 主库10.72.16.112 从库10.72.16.50 一直有个疑问,利用sql_log_bin=0可以临时在客户端停止将操作记入binlog中,如果使用source命 ...
- delphi 在线程中运行控制台命令(console)
在编程开发的时候,我们时常会调用windows本身的功能,如:检测网络通断,连接无线wifi等. 虽然,用 windows api 操作可以完美地完成这些操作,但是,函数参数太难了.令人望而生畏,不是 ...
- Javac早期(编译期)
从Sun Javac的代码来看,编译过程大致可以分为3个过程: 解析与填充符号表过程. 插入式注解处理器的注解处理过程. 分析与字节码生成过程. Javac编译动作的入口是com.sun.tools. ...
随机推荐
- vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到过什么问题、踩过的坑)
问题描述: 用vue封装一个swiper组件的时候,发现轮播图不能轮播了. 原因: 异步请求的时间远大于生命周期执行的时间,mounted初始化DOM时数据未返回,渲染数据是空数组,导致轮播图的容器层 ...
- IE和火狐的事件机制有什么区别
1.IE的事件流是冒泡流,火狐支持冒泡流和捕获流. 2.阻止事件冒泡:IE---e.cancelBubble = true; 火狐---e.stopPropagation();
- 洛谷 P1807 最长路_NOI导刊2010提高(07)题解
相当与一个拓扑排序的模板题吧 蒟蒻的辛酸史 题目大意:给你一个有向无环图,让你求出1到n的最长路,如果没有路径,就输出-1 思路:一开始以为是一个很裸的拓扑排序 就不看题目,直接打了一遍拓扑排序 然后 ...
- vue自学小demo----前端
vue学习的小demo,实现简单的页面项目的增删 代码如下 <!DOCTYPE html> <html> <head> <meta charset=" ...
- mysql(六)数据库连接池
什么是数据库连接池 数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放 数据库连接池的运行机 ...
- 微信公众平台开发(150)——从新浪云SAE上传图片到图文消息
从新浪云SAE上传图片到图文消息,只能用于图文消息中, 没有个数限制 if (!empty($_FILES['qrcode']['name'])){ $filename = time()." ...
- 修改Ubuntu系统的用户名和主机名
1.前言 当我们拿到别人拷贝的系统时,往往需要修改拷贝系统的密码.用户名和主机名,本文简单介绍在Ubuntu下如何进行相关配置文件的修改. 2.如何修改 (1)修改root的密码 运行下面的命令对对r ...
- Laravel文档工具
laravel-doc ⛵laravel-doc 是一个用来生成文档,通过markdown来撰写文档,并提供web访问文档的项目 安装要求 PHP >= 7.0.0 Laravel >= ...
- Linux手动安装新版本Python教程(CentOS)
一.说明 1.1 linux为什么不升级python版本 2008年python3就发布了,到2020年1月1日python2.7就停止更新了,为什么主流的linux迟迟不去除python2自带pyt ...
- servlet规范--Servlet 规范其实就是对 HTTP 协议做面向对象的封装
Servlet规范 一个最基本的 Java Web 项目所需的 jar 包只需要一个 servlet-api.jar ,这个 jar 包中的类大部分都是接口,还有一些工具类,共有 2 个包,分别是 j ...