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

你可能感兴趣的文章
php后台的在控制器中就可以实现阅读数增加
查看>>
php命令行生成项目结构
查看>>
php命名空间
查看>>
PHP命名空间带来的干扰
查看>>
PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境
查看>>
php商店管理系统,基于PHP的商店管理系统.doc
查看>>
PHP四大主流框架的优缺点总结
查看>>
PHP图片处理—PNG透明缩放并生成灰图
查看>>
php在liunx系统中设置777权限不起作用解决方法
查看>>
PHP基于openssl实现的非对称加密操作
查看>>
php基本符号大全
查看>>
php基础篇-二维数组排序 array_multisort
查看>>
php基础配置环境变量
查看>>
php增删改查封装方法
查看>>
springboot之jar包Linux后台启动部署及滚动日志查看且日志输出至文件保存(超级详细)
查看>>
php多条件筛选功能的实现
查看>>
php多线程
查看>>
PHP大数组循环-避免产生Notice或者是Warning
查看>>
PHP大数组过滤元素、修改元素性能分析
查看>>
PHP大文件切片下载代码
查看>>