Не удается выполнить jar-файл: & ldquo; нет основного атрибута манифеста & rdquo;

Я использую эту функцию:

public static int[][] copy(final int[][] array) {
    if (array != null) {
        final int[][] copy = new int[array.length][];

        for (int i = 0; i < array.length; i++) {
            final int[] row = array[i];

            copy[i] = new int[row.length];
            System.arraycopy(row, 0, copy[i], 0, row.length);
        }

        return copy;
    }

    return null;
}

Большим преимуществом этого подхода является то, что он также может копировать массивы, которые не имеют одинакового количества строк, например:

final int[][] array = new int[][] { { 5, 3, 6 }, { 1 } };
802
задан g00glen00b 18 April 2018 в 11:50
поделиться

1 ответ

Проблема ЗНАТОКА состоит в том, что ее попытка включать первый файл MANIFEST.MF из первой библиотеки от зависимостей вместо НАШЕГО СОБСТВЕННОГО MANIFEST.MF ПРИ ИСПОЛЬЗОВАНИИ АРТЕФАКТОВ! .

  1. Переименовывают yourjar.jar к yourjar.zip
  2. , Открывают файл MANIFEST.MF из Копии META-INF\MANIFEST.MF
  3. реальные MANIFEST.MF, которые уже генерируют в Вашем проекте ЗНАТОКА, Которые включают somelike что: Явная Версия: 1.0 Основной Класс: Замена youpacket.youmainclass
  4. содержание MANIFEST.MF из youjar.zip с ним.
  5. Переименовывают yourjar.zip к yourjar.jar назад.
  6. Теперь Java - банка yourjar.jar работают отлично.

ИЛИ!

Простой создают Вас, владеют MANIFEST.MF и:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.2</version>
            <configuration>
                <archive>
                    <manifestFile>/src/main/resources/META-INF/MANIFEST.MF</manifestFile>
                    <index>true</index>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

, Но если Вы используете панель знатока (или командная строка знатока) можно вынудить ее генерировать собственную декларацию и включать ее в файл JAR.

  1. Добавляют к Вам pom.xml этот код:

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.2</version>
            <configuration>
                <archive>
                    <index>true</index>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                    <manifestEntries>
                        <mode>development</mode>
                        <url>${project.url}</url>
                        <key>value</key>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
    
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <index>true</index>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                    <manifestEntries>
                        <mode>development</mode>
                        <url>${project.url}</url>
                        <key>value</key>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
    </plugins>
    

    1. Открывают панель MAVEN (в Intellij) и выполняют "Установку". Это генерирует ФАЙЛ МАНИФЕСТА и скомпилирует свойство файл JAR со всеми зависимостями в папку "Target". Также это будет установлено на локальном репозитории знатока.
4
ответ дан 22 November 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: