在JAR中找不到主类

时间:2015-03-12 17:04:17

标签: java maven maven-2 maven-3

我正在使用Maven建立一个我正在研究的项目。构建工作正常,运行生成的JAR时会出现问题。错误显示the main class com.apress.springrecipes.sequence.Main cannot be found.但是查看文件夹结构我没看到为什么无法找到主类。

这是文件夹结构:

myJar.jar
    --com
        --apress
            --springrecipes
                --sequence
                    --Main.class
    --META-INF
        --MAINIFEST.MF

MANIFEST.MF文件的主类属性设置为com.apress.springrecipes.sequence.Main。但看起来即使类文件位于JAR中,JAR也无法找到它。

这是我处理构建的pom.xml的相关部分:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>C:/Users/Graham/.m2/repository/</classpathPrefix>
                        <classpathLayoutType>repository</classpathLayoutType>
                        <mainClass>com.apress.springrecipes.sequence.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

为什么没有在罐子里找到Main class,即使它在那里?

2 个答案:

答案 0 :(得分:0)

我不是Java开发人员,但是我试一试:编译器说的内容和你正在检查的内容不是一回事。编译器说它找不到“Main class”,它并没有说它找不到“Main.class文件”。

文件可能在那里,但是在其中定义了“class Main ...”(使用public void main()方法)?

答案 1 :(得分:0)

即使我遇到了类似的问题,我采取了以下措施并且有效。

  1. 确保您的IDE和JAVA_HOME环境变量指向相同版本的JAVA。
  2. 如果您有任何配置文件(.ini,xml等),请将这些文件与JAR文件放在同一文件夹中。