Java 无法从Maven中找到或加载主类:可执行JAR

Java 无法从Maven中找到或加载主类:可执行JAR,java,maven,Java,Maven,我正在尝试使用Maven汇编插件从Maven创建一个可执行JAR。我的JAR正在创建中,但没有我的源代码。我已经在POM中提到了目标为single,并使用以下命令创建jar:“mvn clean package assembly:single”。但我仍然得到这个错误:“错误:无法找到或加载主类com.som.bau.report.MainClass” 请参见下面我的POM.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xml

我正在尝试使用Maven汇编插件从Maven创建一个可执行JAR。我的JAR正在创建中,但没有我的源代码。我已经在POM中提到了目标为single,并使用以下命令创建jar:“
mvn clean package assembly:single
”。但我仍然得到这个错误:“错误:无法找到或加载主类com.som.bau.report.MainClass”

请参见下面我的POM.xml

<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>VFIE_SOM_BAU_Report</groupId>
<artifactId>SOM_BAU_Report</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
    <jdk.version>1.7</jdk.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>false</downloadJavadocs>
            </configuration>
        </plugin>   
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.som.bau.report.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> 
                    <phase>package</phase> 
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions> 
        </plugin>
    </plugins>
</build>

<dependencies>
<!-- Dependencies code goes here ---!>
</dependencies>

</project>

4.0.0
VFIE_SOM_BAU_报告
松包报告
0.0.1-快照
1.7
org.apache.maven.plugins
maven eclipse插件
2.9
符合事实的
错误的
org.apache.maven.plugins
maven编译器插件
3.2
1.7
1.7
org.apache.maven.plugins
maven汇编插件
2.4.1
带有依赖项的jar
com.som.bau.report.MainClass
组装
包裹
仅有一个的

您应该将打包类型附加到根元素

...
<modelVersion>4.0.0</modelVersion>
<groupId>VFIE_SOM_BAU_Report</groupId>  
<artifactId>SOM_BAU_Report</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
...
。。。
4.0.0
VFIE_SOM_BAU_报告
松包报告
0.0.1-快照
罐子
...

我找到了解决方案

需要在“生成标记”下添加此标记

<sourceDirectory>src</sourceDirectory>
src

你确定你的主类是com.som.bau.report.MainClass吗?是的,我在这个类中有main方法,如果我直接从eclipsealso执行它,它就可以工作。所以附加问题中的目录结构附加……@ManishRajput你检查过你的目标/类文件夹了吗,您的.class文件是否存在?是否
打包
默认为
jar
?在目标文件夹中有两个jar文件。确保运行正确的jar。我正在执行正确的jar。问题是两个JAR都没有我的源代码OK。您可以使用jar tf package.jar命令列出jar中的文件,然后进行检查。一切正常吗?您应该将源代码放在src/main/java下,这是Maven的默认假设