Это регулярно происходит, когда вы меняете расширение в JAR для ZIP, извлекаете содержимое zip и вносите некоторые изменения в файлы, такие как изменение файла MANIFEST.MF, что является очень распространенным случаем, во многих случаях Eclipse не генерирует Манифест файла, как мы хотим, или, возможно, мы хотели бы изменить значения CLASS-PATH или его значения MAIN-CLASS.
Проблема возникает при заархивировании папки назад.
Действительный исполняемый / исполняемый JAR имеет следующую структуру:
myJAR (Main-Directory)
|-META-INF (Mandatory)
|-MANIFEST.MF (Mandatory Main-class: com.MainClass)
|-com
|-MainClass.class (must to implement the main method, mandatory)
|-properties files (optional)
|-etc (optional)
Если ваш JAR соответствует этим правилам, это будет работать, не имеет значения, если вы создадите его вручную с помощью инструмента ZIP, а затем измените расширение на .jar
Как только вы закончите, попробуйте выполнить его в командной строке, используя:
java -jar myJAR.jar
Когда вы используете zip-инструмент для распаковки, изменения файлов и zip-файла, обычно структура JAR изменяется на эту структуру, что неверно, так как в верхней части файловой системы добавляется другой уровень каталога, что делает его поврежденным файлом как есть. показано ниже:
**myJAR (Main-Directory)
|-myJAR (creates another directory making the file corrupted)**
|-META-INF (Mandatory)
|-MANIFEST.MF (Mandatory Main-class: com.MainClass)
|-com
|-MainClass.class (must to implement the main method, mandatory)
|-properties files (optional)
|-etc (optional)
:)