Невозможно сделать исполняемый файл с помощью m2eclipse - PullRequest
0 голосов
/ 19 мая 2011

Я только начал изучать, как использовать m2eclipse. Я пытаюсь сделать очень простую программу (Hello, World) и превратить ее в исполняемый файл. Сам код Java:

публичный класс Speak {

/**
 * @param args
 */
public static void main(String[] args) {
    System.out.println("Meow!");
}

}

, который отлично работает как приложение Java. Затем я пытаюсь использовать Maven для сборки программы, что и происходит, но затем, когда я пытаюсь запустить .jar, он сообщает мне «Не удалось загрузить атрибут Main-Class from ...». Это .pom, сгенерированный m2eclipse при запуске проекта:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org   /2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.felines</groupId>
<artifactId>tabbies</artifactId>
<version>0.0</version>
<dependencies>
<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.3.1</version>
  <type>maven-plugin</type>
  <scope>compile</scope>
</dependency>
</dependencies>
</project>

Я попытался изменить .pom, вот так:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.felines</groupId>
<artifactId>tabbies</artifactId>
<version>0.0</version>
<build>
<plugins>
    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
        <archive>
        <manifest>
             <mainClass>org.felines.Speak</mainClass>
             <packageName>org.felines</packageName>
        </manifest>
            <manifestEntries>
                <mode>development</mode>
                <url>${pom.url}</url>
        </manifestEntries>
        </archive>
        </configuration>
    </plugin>
</plugins>
</build>
</project>

Теперь написано: «Не удалось найти основной класс: org.felines.Speak. Программа будет завершена». Есть идеи? (

Спасибо за ваше время!

1 Ответ

2 голосов
/ 19 мая 2011

В вашем pom.xml вы утверждаете, что основной класс должен быть org.felines.Speak.Но на самом деле класс находится в пакете по умолчанию, что означает отсутствие определения пакета.Поэтому либо установите пакет на org.felines в реализации класса, либо измените запись mainClass в файле pom.xml только на Speak.Тогда необходимая информация для запуска банки должна быть доступна.

...