Когда я открываю файл minecraft.jar с помощью p7zip в Linux, я не могу удалить папку META-INF.

Error: /home/davide/.minecraft/bin/minecraft.jar is not supported archive System error: Operation not permitted

Что я могу сделать?

Комментировать

1 ответ на вопрос

Maerlyn 2011-08-20 в 09:00

p7zip не удалось открыть его для меня даже после переименования в zip (сказал «неизвестный суффикс»).

Менеджер архивов по умолчанию в моей системе file-roller открыл .jar без проблем, и я мог удалить папку.

unzip может также справиться с этим, но вам нужно повторно сжать вручную после.

Источник: wikiroot.ru

Почему мне нужно удалить папку META-INF при установке модов?

В Minecraft почти в каждом руководстве по установке MOD говорится о необходимости удалить папку META-INF. Однако ни в одном из тех, что я нашел, не сказано, что это такое. Мне не нравится идея удалять папку, не зная, что это такое и что она делает.

Как удалить папку META INF 100%

Так что же такое папка META-INF, и почему я должен ее удалить?

43 2011-07-31T12:02:09+00:00 1
Редактировал вопрос 4-го июля 2019 в 1:10
Решение / Ответ
31-го июля 2011 в 1:49
2011-07-31T13:49:13+00:00
Дополнительно

Потому что Minecraft имеет цифровую подпись. META-INF содержит файл подписи ( .SF ), который учитывает все файлы внутри JAR и их контрольные суммы, а также собственно подпись Mojang’а ( .RSA ).

Когда подпись подтверждается, вы знаете, что она не была подделана и исходит от источника, который ее подписал (в данном случае, Mojang). Когда вы делаете подделку, устанавливая моды, подпись становится недействительной, и Minecraft не запускается вообще.

Удалив каталог META-INF, вы полностью удалите подпись. В зависимости от ваших настроек безопасности, вы можете получить предупреждение «неизвестный издатель», но вы’сможете запустить игру.

Более подробная информация: Спецификация файла JAR

Источник: kzen.dev

Какова цель META-INF?

В Java вы часто видите папку META-INF, содержащую некоторые метафайлы. Какова цель этой папки и что я могу поместить туда?

user11429 16 сен ’08 в 07:55 2008-09-16 07:55
2008-09-16 07:55

13 ответов

Вообще говоря, вы не должны ничего помещать в META-INF самостоятельно. Вместо этого вы должны полагаться на все, что вы используете для упаковки вашего JAR. Это одна из областей, в которой Ant, на мой взгляд, действительно превосходит другие: указание атрибутов манифеста файла JAR. Это очень легко сказать что-то вроде:

Читайте также:  Почему пчелы не делают мед в Майнкрафте

По крайней мере, я думаю, что это легко. -)

Дело в том, что META-INF следует рассматривать как внутренний мета- каталог Java. Не связывайтесь с этим! Любые файлы, которые вы хотите включить в ваш JAR, должны быть помещены в какой-то другой подкаталог или в корень самого JAR.

minecraft META-INF не удаляется

user9815 16 сен ’08 в 08:05 2008-09-16 08:05
2008-09-16 08:05

Из официальной спецификации файла JAR (ссылка ведет на версию Java 7, но текст не изменился с версии по крайней мере v1.3):

Каталог META-INF

  • MANIFEST.MF
  • INDEX.LIST
  • x.SF
  • x.DSA
  • services/

user1196 16 сен ’08 в 07:57 2008-09-16 07:57
2008-09-16 07:57

Я заметил, что некоторые библиотеки Java начали использовать META-INF в качестве каталога для включения файлов конфигурации, которые должны быть упакованы и включены в CLASSPATH вместе с JAR-файлами. Например, Spring позволяет импортировать XML-файлы, находящиеся в пути к классам, используя:

В этом примере я цитирую прямо из Руководства пользователя Apache CXF. В проекте, над которым я работал, в котором нам нужно было разрешить несколько уровней конфигурации через Spring, мы следовали этому соглашению и поместили наши файлы конфигурации в META-INF.

Когда я размышляю над этим решением, я не знаю, что именно было бы неправильно при простом включении файлов конфигурации в конкретный пакет Java, а не в META-INF. Но, похоже, это де-факто новый стандарт; или это, или появляющийся антипаттерн:-)

user38748 24 ноя ’08 в 21:38 2008-11-24 21:38
2008-11-24 21:38

Папка META-INF является папкой для файла MANIFEST.MF. Этот файл содержит метаданные о содержимом JAR. Например, есть запись с именем Main-Class, которая задает имя класса Java со статическим main() для исполняемых файлов JAR.

user1969 16 сен ’08 в 08:00 2008-09-16 08:00
2008-09-16 08:00

МЕТА-ИНФ в Maven

В Maven папка META-INF понимается из-за стандартного макета каталога, который по соглашению имен упаковывает ресурсы вашего проекта в JAR: любые каталоги или файлы, помещенные в каталог $/src/main/resources, упаковываются в ваш JAR с точно такая же структура, начиная с основания JAR. Папка $/src/main/resources/META-INF обычно содержит файлы .properties, в то время как в jar содержится сгенерированный файл MANIFEST.MF, pom.properties, pom.xml и другие файлы. Также фреймворки, такие как использование Spring classpath:/META-INF/resources/ обслуживать веб-ресурсы. Для получения дополнительной информации см. Как добавить ресурсы в мой проект Maven

Читайте также:  Самые страшные ники для Майнкрафт

user3233398 12 янв ’15 в 15:48 2015-01-12 15:48
2015-01-12 15:48

Вы также можете разместить статические ресурсы там.

META-INF/resources/button.jpg

и получить их в web3.0-контейнере через

http://localhost/myapp/button.jpg

Файл /META-INF/MANIFEST.MF имеет особое значение:

  1. Если вы запускаете банку с помощью java -jar myjar.jar org.myserver.MyMainClass Вы можете переместить определение основного класса в банку, чтобы вы могли уменьшить вызов в java -jar myjar.jar ,
  2. Вы можете определить метаинформацию для пакетов, если вы используете java.lang.Package.getPackage(«org.myserver»).getImplementationTitle() ,
  3. Вы можете ссылаться на цифровые сертификаты, которые вы хотите использовать в режиме апплета / веб-запуска.

user843943 15 янв ’13 в 14:50 2013-01-15 14:50
2013-01-15 14:50

В дополнение к информации, META-INF — это специальная папка, ClassLoader относится к другим папкам в банке. Элементы, вложенные в папку META-INF, не смешиваются с элементами вне нее.

Думайте об этом как о другом корне. От Enumerator ClassLoader#getSystemResources(String path) метод и другие перспективы:

Когда данный путь начинается с «META-INF», метод выполняет поиск ресурсов, которые вложены в папки META-INF всех jar-файлов в пути класса.

Когда данный путь не начинается с «META-INF», метод ищет ресурсы во всех других папках (кроме META-INF) всех jar-файлов и каталогов в пути к классам.

Если вы знаете о другом имени папки, что getSystemResources метод относится специально, пожалуйста, прокомментируйте об этом

user1154271 22 апр ’16 в 18:21 2016-04-22 18:21
2016-04-22 18:21

Чтобы добавить сюда информацию, в случае файла WAR файл META-INF/MANIFEST.MF предоставляет разработчику средство для запуска проверки времени развертывания контейнером, которая гарантирует, что контейнер сможет найти все классы вашего приложения. зависит от. Это гарантирует, что в случае, если вы пропустили JAR, вам не нужно ждать, пока ваше приложение сработает во время выполнения, чтобы понять, что оно отсутствует.

user99463 21 окт ’09 в 15:21 2009-10-21 15:21
2009-10-21 15:21

Я думал об этой проблеме недавно. Кажется, на самом деле нет никаких ограничений на использование META-INF. Конечно, существуют определенные ограничения относительно необходимости размещения там манифеста, но, похоже, нет никаких запретов на размещение других вещей там.

Дело CXF может быть законным. Вот еще одно место, где этот нестандартный рекомендуется для обхода неприятной ошибки в JBoss-ws, которая препятствует проверке на стороне сервера по схеме wsdl.

Читайте также:  Кнопки Майнкрафт на клавиатуре

Но на самом деле, кажется, нет никаких стандартов, никаких проблем. Обычно эти вещи очень строго определены, но по некоторым причинам, кажется, здесь нет стандартов. Странный. Кажется, что META-INF стал популярным местом для любой необходимой конфигурации, которая не может быть легко обработана другим способом.

user811299 11 окт ’11 в 03:45 2011-10-11 03:45
2011-10-11 03:45

Если вы используете JPA1, возможно, вам придется persistence.xml там находится файл, в котором указывается имя единицы постоянства, которую вы, возможно, захотите использовать. Модуль постоянства предоставляет удобный способ указания набора файлов метаданных, а также классов и jar-файлов, которые содержат все классы, которые должны быть сохранены в группе.

import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; // . EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName);
user157460 22 окт ’09 в 20:42 2009-10-22 20:42
2009-10-22 20:42

Все ответы верны. Мета-инфо имеет много целей. Кроме того, вот пример использования контейнера Tomcat.

Перейдите в Tomcat Doc и проверьте атрибут » Стандартная реализация> copyXML «.

Установите значение true, если вы хотите, чтобы контекстный XML-дескриптор, встроенный в приложение (расположенный в /META-INF/context.xml), был скопирован в xmlBase хоста-владельца при развертывании приложения. При последующих запусках скопированный контекстный XML-дескриптор будет использоваться предпочтительнее любого контекстного XML-дескриптора, встроенного в приложение, даже если дескриптор, встроенный в приложение, является более новым. Значение флага по умолчанию равно false. Обратите внимание, что если атрибут deployXML владельца хоста имеет значение false или если атрибут copyXML хоста-владельца равен true, этот атрибут не будет действовать.

user1172945 13 янв ’15 в 15:04 2015-01-13 15:04
2015-01-13 15:04

У вас есть файл MANIFEST.MF внутри вашей папки META-INF. Вы можете определить дополнительные или внешние зависимости, к которым у вас должен быть доступ.

Пример:

Предположим, что вы развернули свое приложение, и ваш контейнер (во время выполнения) обнаружил, что вашему приложению требуется более новая версия библиотеки, которая не находится внутри папки lib, в том случае, если вы определили дополнительную более новую версию в MANIFEST.MF тогда ваше приложение будет ссылаться на зависимость оттуда (и не будет зависать).

Source: Head First JSP & Servlet

Источник: stackru.com