博客
关于我
写在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/

你可能感兴趣的文章
postman进行http接口测试
查看>>
Postman高阶技能:Collection集合批量运行!
查看>>
postMessage跨标签页共享数据
查看>>
QImage对一般图像的处理
查看>>
post为什么会发送两次请求?
查看>>
Post表单提交TextArea的值出现转译乱码问题 - Spring MVC处理表单提交
查看>>
Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
查看>>
Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?
查看>>
power english (3) main text -emotion mastery - focus
查看>>
POWER ENGLISH (6) - MODEL
查看>>
power english (1) —— passion
查看>>
Power English (1) 原文
查看>>
power English (3)原文
查看>>
POWER ENGLISH(7)- repetition
查看>>
SpringBoot中集成SpringBatch详细解析与实战示例(CSV文件读取十万条数据进行业务处理后写入Mysql数据库)
查看>>
powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
查看>>
QGIS怎样设置简体中文以及新建可编辑的多边形的图层
查看>>
PowerBuilder 使用自定义事件触发键盘Enter事件
查看>>
PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
查看>>
PowerDesigner 使用的一些技巧(转)
查看>>