1. IDEA编译出来的jar文件内部为什么多了几个带$符号的文件
你好,
很高兴回答你的问题。
如图出现带有$符号的文件的原因是因为在类a的内部定义了类1,2,3,4(内部类)。
结构大致是这样:
class a{
class 1{}
class 2{}
class 3{}
class 4{}
}
如果有帮助到你,请点击采纳。
我解答的大部分是软件开发新人遇到的问题,如果有兴趣可以关注我。
2. 【JarEditor】可直接修改jar包的IDEA插件
在进行代码开发和维护过程中,常常会遇到需要直接修改jar文件内部类的问题,传统的做法是先解压jar文件,再反编译class文件,修改后再重新编译和打包。这一系列操作繁琐且容易出错,耗费大量时间和精力。
然而,市面上并没有满足直接编辑jar文件的IDEA插件,这促使我着手编写一个名为JarEditor的插件,以实现无需解压即可编辑jar包内部类的功能。
JarEditor插件的使用流程简便高效。首先,IDEA自带的反编译插件可以打开jar文件,并展示反编译后的类代码。随后,通过在插件市场安装JarEditor,用户可以访问插件提供的Jar Editor功能区,直接在反编译的代码上进行修改。
修改完成后,用户只需点击“Save/Compile”按钮,系统将自动编译修改的java内容,并保存到修改的类文件中。接着,通过点击“Build Jar”按钮,系统将把修改后的类文件写入到原始jar包中,实现一气呵成的编辑过程,无需再进行复杂的解压和打包操作。
不仅如此,JarEditor还支持修改jar包内的资源文件。用户只需按照相同的流程操作,即可完成资源文件的编辑和更新。在查看jar包工程展示图时,用户可以通过右键任意文件,选择“New”或“Delete”操作,轻松新增或删除文件。
总结而言,JarEditor插件大大简化了编辑jar文件的过程,提高了开发效率。用户只需安装插件,并遵循简单操作步骤,即可实现直接在jar文件中进行代码修改,节省了大量时间,减少了出错几率。感兴趣的开发者可以尝试使用,源码地址在GitHub上可供参考。支持IDEA最低版本为2020.3,兼容更高级别版本。
欢迎广大开发者交流反馈,共同提升开发体验。
3. java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
这个问题是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。
1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。
2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。
3、综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。一般是jdk和jvm版本不一致导致,可以在cmd命令下输入java -version和javac -version看版本是否一致,不一致的话需要改JAVA_HOME保证一致。
拓展资料:
Java 异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。异常发生的原因有很多,通常包含以下几大类:
1、用户输入了非法数据。
2、要打开的文件不存在。
3、网络通信时连接中断,或者JVM内存溢出。
这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:
1、检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
2、运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
3、错误:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。