java编译后出现:类名$1.class和 $2.class

createh54个月前 (12-22)技术教程40

起因:更改了某个类,加了两个java 的comparator比较器,通过内部类的方式实现。因为仅改了一个类所以后面发布的时候就采用增量发布,直接替换.class并重启服务器,之后访问与该类相关接口都会报错说找不到xxxx$1.class 和xxxx$2.class。

解决:查看重编译后的文件夹确实有编译出xxxx$1.class 和xxxx$2.class文件,将两个文件也一同发布后重启服务器,恢复正常。


结论:java编译后的文件名字带有$接数字的就是匿名内部类的编译结果。全量发布的时候可以不会发现缺少,但如果做增量发布,又有使用到内部类就需要把相应的xxxx$1.class 和xxxx$2.class一起发布,本次使用了两个内部类所以产生了两个文件。

相关文章

Java基础 - javac命令详解之编译 如何使用javac命令编译

1.为什么要搞定 javac 命令1.javac 是java中的编译源代码的命令工具,将.java文件编译成 .class 文件;2.由于当下为了提高开发效率,大多数的开发工作都在 java的 集成开...

小白7天掌握Shell编程:脚本的创建和执行

一、课前声明1、本分享仅做学习交流,请自觉遵守法律法规!2、搜索:Kali与编程,学习更多网络攻防干货!二、知识点详解Shell脚本的格式要求:脚本要以!#/bin/bash开头,其中bash可以替换...

Java 21:有什么新变化? java近几年发展变化

【CSDN 编者按】这篇文章详细介绍了Java 21 的新特性和改进。Java 21是新的长期支持(LTS)版本,其中包括了15个Java增强提案(JEPs)。其中最重要的特性之一是虚拟线程的最终化,...

深入理解Java虚拟机之自己编译JDK

题外话最近在阅读《深入理解Java虚拟机》,其中有一小节实战是自己编译JDK,实际操作下来后遇到问题不少,为此特地记录,也希望可以给大家带来一些参考!前置准备平台及工具: Windows 10 + W...

Java构建和发布工具jDeploy java 构建工具

Java语言在设计之初就提出了“一次编写,到处运行”的口号。但是理想很丰满,现实很骨感,实际上Java经过这么多年的发展其易用性也不是很让人满意,其运行环境的配置也颇为坎坷。本文虫虫给大家介绍一款Ja...

编写属于你的第一个Java程序 这是我的第一个java程序怎么写

前言在前面的文章中我们已经安装好了Java开发与运行环境,所以在本篇中将介绍如何编写一个简单的Java程序,然后对源码进行编译,最后执行,查看运行效果。编写属于你的第一个Java程序使用文本编辑器编写...