Java .JAR文件在执行时是否不执行校验和检查?

Java .JAR文件在执行时是否不执行校验和检查?,java,jar,checksum,crc,Java,Jar,Checksum,Crc,我在测试一些东西,大致如下: -更改JAR文件的内容(通过记事本++) -保存并运行它 由于JAR文件基本上只是ZIP文件,我假设在JVM实际运行JAR文件之前,校验和正在被验证。但事实并非如此,JAR文件被执行并引发异常,即缺少某些内容 例如,当使用7zip进行提取时,会报告CRC错误。在运行它时,我期望有相同的行为 我错过什么了吗?或者在运行JAR文件之前/期间实际上没有执行校验和检查吗?简短的回答是: 只要您在提到抛出的异常或发生的错误时不使用旧的Java版本,请也共享该错误,如果出现异常

我在测试一些东西,大致如下:
-更改JAR文件的内容(通过记事本++)
-保存并运行它

由于JAR文件基本上只是ZIP文件,我假设在JVM实际运行JAR文件之前,校验和正在被验证。但事实并非如此,JAR文件被执行并引发异常,即缺少某些内容

例如,当使用7zip进行提取时,会报告CRC错误。在运行它时,我期望有相同的行为


我错过什么了吗?或者在运行JAR文件之前/期间实际上没有执行校验和检查吗?

简短的回答是:


只要您在提到抛出的异常或发生的错误时不使用旧的Java版本,请也共享该错误,如果出现异常,请共享带有错误消息的异常名称,如果可能,至少stacktraceI的第一部分会这样做,但异常根本不重要(因为它会根据删除的内容的哪个部分或多少而改变)。异常与任何CRC检查无关,只提到由于缺少数据而无法调用方法。(例如,此处:java.lang.NoClassDefFoundError)主要关注的是JAR文件在没有CRC检查的情况下执行的事实,正如我所假设的。谢谢你的回答。我将查看你提供的信息。我再试了一次,在记事本中更改了JAR文件不同区域的数据,得到了许多不同的结果。有时候,JVM确实显示了一个错误“错误:文件无效或损坏。。。",但在其他情况下,JAR文件只是正常运行或显示NoClassDefFoundError之类的异常。对我来说,这很奇怪,因为我认为一旦我更改了JAR中的任何数据,就应该对此进行检查。如果您使用7-ZIP与Notepad++组合来编辑JAR文件,请确保在编辑该ZIP文件时没有在其他程序中打开它。7-Zip复制了Zip文件内容,它必须与原始文件同步。我已经遇到过这种情况,同步无法正常工作,没有任何错误。在我的情况下,我在7-Zip的另一个实例中打开了相同的Zip文件;-)