2_10关于重新安装tomcat

中午发现tomcat里面jar包好像少了因为cmd也打不开只能重新下,后来发现不是少了只是合并jar包了,因此端口号也得重新修改,但是第一次没想到,所以localhost8080一直打不开,修改后还是打不开,原因是java文件和xml配置文件解释重复了,删掉一个就好了。



还有就是classes下只能放class编译文件,不能放java文件不符合规定。

所以编译的时候需要cmd手动指定路径

复制代码
javac -encoding UTF-8 -cp "E:\apache-tomcat-11.0.18-windows-x64\apache-tomcat-11.0.18\lib\servlet-api.jar" -d "E:\apache-tomcat-11.0.18-windows-x64\apache-tomcat-11.0.18\webapps\crm\WEB-INF\classes" HelloCRMServlet.java

javac -encoding UTF-8 -cp "E:\apache-tomcat-11.0.18-windows-x64\apache-tomcat-11.0.18\lib\servlet-api.jar" -d "E:\apache-tomcat-11.0.18-windows-x64\apache-tomcat-11.0.18\webapps\crm\WEB-INF\classes" HelloCRMServlet.java

命令片段 作用解释 你的场景说明
javac Java 编译器的核心指令,用于将.java源文件编译为.class字节码文件 必须先确保 JDK 的bin目录在系统Path里,否则 CMD 找不到javac
-encoding UTF-8 指定源文件的编码格式为 UTF-8 解决中文乱码问题(你的代码里有中文,必须加)
-cp "servlet-api.jar路径" -cp = classpath(类路径),告诉编译器去哪里找依赖的类(比如 Servlet 相关的HttpServlet servlet-api.jar是 Tomcat 提供的 Servlet 核心包,你的代码继承了HttpServlet,必须让编译器找到这个包
-d "目标路径" 核心参数! -d = destination(目标目录),指定编译后.class文件的输出路径,且会根据 Java 文件的package自动创建多级目录 你指定的目标路径是 Tomcat 的crm/WEB-INF/classes,编译器会根据com.crm.servlet的包名,自动在这个路径下创建com/crm/servlet三级文件夹,把class文件放进去
HelloCRMServlet.java 要编译的 Java 源文件名称(如果源文件不在当前 CMD 目录,需要写完整路径,比如H:\大二大作业\Java_prc\src\com\crm\servlet\HelloCRMServlet.java 你在源文件所在目录执行命令,所以直接写文件名即可

如果不写-d参数,javac会默认把.class文件编译到当前 CMD 所在目录 (和.java源文件同目录);加上-d 目标路径后,编译器会把.class文件输出到你指定的目标路径,而非源文件目录。

相关推荐
NE_STOP29 分钟前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
后端AI实验室5 小时前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai
程序员清风7 小时前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme7 小时前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试
Be_Better7 小时前
学会与虚拟机对话---ASM
java
开源之眼10 小时前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
Maori31611 小时前
放弃 SDKMAN!在 Garuda Linux + Fish 环境下的优雅 Java 管理指南
java
用户9083246027311 小时前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
小王和八蛋11 小时前
DecimalFormat 与 BigDecimal
java·后端
beata11 小时前
Java基础-16:Java内置锁的四种状态及其转换机制详解-从无锁到重量级锁的进化与优化指南
java·后端