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

你可能感兴趣的文章
NHibernate动态添加表
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
Nhibernate的第一个实例
查看>>
NHibernate示例
查看>>
nid修改oracle11gR2数据库名
查看>>
NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_插入时如果目标表中已存在该数据则自动改为更新数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0058
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>