Я пытаюсь создать исполняемый файл .jar для приложения, но когда я запускаю «java -jar myapp.jar», я получаю сообщение об ошибке:

Ошибка: не удалось найти или загрузить основной класс com.vaadin.app.MainView

Я добавил аргумент mainClass в свой файл pom.xml, и Manifest.mf показывает это:

Манифест-Версия: 1.0

Build-JDK-Spec: 1,8

Создано: Maven Archiver 3.4.0

Основной класс: com.vaadin.app.MainView

Есть ли причина, по которой он не может найти метод {{X 0}} в моем классе MainView?

0
2EricH 19 Авг 2019 в 04:44

2 ответа

Лучший ответ

Проблема была в моем pom-файле, он нуждался в добавленном maven-assembly-plugin со следующей конфигурацией:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>
                                        com.vaadin.app.MainView
                                    </mainClass>
                                </manifest>
                            </archive>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

Затем запускается jar-with-dependencies.jar с кодом 0.

0
Merlin 22 Авг 2019 в 21:19

Я столкнулся с теми же проблемами, и для меня файл JAR не был правильно построен. Вы можете создать JAR-файл, перейдя в «Выполнить настройку» (щелкните правой кнопкой мыши в eclipse -> maven -> build) и в целях записи

Чистый пакет -Dmaven.test.skip = true

Это сгенерирует ваш правильный jar, и вы можете запустить его, используя java -jar myapp.jar

0
Prakhar 19 Авг 2019 в 02:03