博客
关于我
写在java文件的语句没编译到class文件中的解决办法
阅读量:768 次
发布时间:2019-03-23

本文共 1072 字,大约阅读时间需要 3 分钟。

在Java项目开发过程中,我曾遇到过类似的问题,尤其是在搭建日志框架(如Log4j)以及编写 debug 语句时。以下是我解决该问题的完整经历和思考过程。

问题描述

我在 log4j.properties 中进行了修改,并尝试在 Java 代码中添加了一个 System.out.println("111111111111111111111111"); 这样的输出语句。然而,在项目启动后运行到该处时,我发现在代码中并没有看到该语句的输出。此外,在检查 webapps 目录下的编译文件时,发现 log4j.properties 没有发生变化,而新增的语句也未能编译到 class 文件中。

###_VALUEScream

测试步骤与问题排除

为了确定问题根源,我采取了以下措施:

1. 移除现有部署文件

我首先删除了 Tomcat 安装路径下的 webapps 目录下部署的项目文件。在重新部署项目后,发现问题依旧存在。新的部署文件中,仍然没有出现我所添加的输出语句,也没有改变 log4j.properties 内容。

2. 使用反编译工具检查

通过反编译工具,我对新增的 Java 类文件进行了分析,发现引入的输出语句并未出现。这表明我可能在项目编译过程中未正确执行代码变更,或者部署文件并未正确同步到运行环境中。

3. 重新构建项目并启动

接下来,我在 Eclipse 中点击了 Project 按钮,并选择了 Build Automatically 选项。这一步骨据我了解,能够确保所有相关文件重新编译并生成最新版本的 class 文件。然而,重新启动项目后,我惊喜地发现,原本不存在的输出语句终于得以在控制台中显示。这说明问题出在项目的自动编译机制上。

反思与解决方案

从前一次的失败经验中,我学会了以下几点:

  • Tomcat 文件缓存问题:有时,即使项目文件发生变化,Tomcat 也可能因为之前的缓存文件而继续使用旧版本。此时手动删除旧文件或使用 Tomcat 的管理界面清理缓存是一个有效的解决方法。
  • 自动编译功能的重要性:通过设置 Build Automatically,确保了项目在每次保存代码后就能自动重新编译。这可以帮助我及时发现和修复错误。
  • 反编译工具的有限性:虽然使用反编译工具有时能提供快速解决方案,但最终还是需要通过实际运行环境来确认问题是否解决。

通过上述步骤和反思,我成功找到了问题的根源,并对项目的部署和开发流程有了更深入的理解。这次经历让我意识到,细节的处理和自动化工具的运用对于开发效率的提升至关重要。

转载地址:http://znezk.baihongyu.com/

你可能感兴趣的文章
Pulsar mq 设置延迟消息模式 pulsar mq 发送延迟消息 pulsar如何发送消费延时消息
查看>>
Pulsar 游标回滚,移动偏移量测试
查看>>
pulsar开源消息队列_了解Pulsar---Pulsar工作笔记001
查看>>
Puppet 在大规模分布式系统中的性能优化策略有哪些?
查看>>
puppet 学习总结(1)——puppet 入门详解
查看>>
puppet 集中化管理PDF by 守住
查看>>
Puppet---自动化运维工具(进阶)
查看>>
puppeteer(三)常用API
查看>>
PyTorch 微调终极指南:第 2 部分 — 提高模型准确性
查看>>
pure css做的手机页面
查看>>
PureMVC--一款多平台MVC框架
查看>>
pure框架
查看>>
putty、Xshell、远程连接、密钥登录
查看>>
Putty建立SSH隧道代理上网
查看>>
putty提示Network error:Software caused connection abort
查看>>
PyTorch 微调终极指南:第 1 部分 — 预训练模型及其配置
查看>>
PVE Win平台虚拟机下如何安装恢复自定义备份Win系统镜像ISO文件(已成功实现)
查看>>
PVS 6.1 Configuring Services Failed
查看>>
pv操作二
查看>>
PWA 入门指南:理解与构建现代化 Web 应用
查看>>