Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法运行jar文件,出现错误,因为无法找到或加载主类(Maven项目)_Java_Maven_Maven Plugin - Fatal编程技术网

Java 无法运行jar文件,出现错误,因为无法找到或加载主类(Maven项目)

Java 无法运行jar文件,出现错误,因为无法找到或加载主类(Maven项目),java,maven,maven-plugin,Java,Maven,Maven Plugin,我已经创建了一个Maven项目,我的类文件位于src/test/java下。 我能够在构建项目时创建Jar文件。但是,当使用命令java-jar Connet.jar运行jar文件时,错误如下: 错误:无法找到或加载主类 POM: org.apache.maven.plugins 首先,类文件应该位于源文件夹下(基本上设置为src/main/java路径) 假设您的课程内容如下: 注意:您应该在其上声明以下主要方法 package com.myproject; public class M

我已经创建了一个Maven项目,我的类文件位于src/test/java下。 我能够在构建项目时创建Jar文件。但是,当使用命令java-jar Connet.jar运行jar文件时,错误如下:

错误:无法找到或加载主类

POM:


org.apache.maven.plugins


首先,类文件应该位于源文件夹下(基本上设置为src/main/java路径)

假设您的课程内容如下:

注意:您应该在其上声明以下主要方法

package com.myproject;

public class MyProjectMain {

    public static void main(String[] args) {
        //initialization
    }

    //other methods
}
然后,您可以按如下方式配置pom:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.myproject.MyProjectMain</mainClass>
            </manifest>
            <manifestEntries>
                <Class-Path>.</Class-Path>
            </manifestEntries>
        </archive>
        <finalName>Connet</finalName>
    </configuration>
</plugin>

org.apache.maven.plugins
maven jar插件
真的
解放党/
com.myproject.MyProjectMain
.
科内

main类应具有包含所有包而非文件夹的完全限定名。它应该是这样的:
aaa.bbb.ccc.YourMainClass
请阅读-总结是,这不是一种向志愿者讲话的理想方式,可能会对获得答案产生反作用。请不要将此添加到您的问题中。@Ivan我根据您的评论进行了更改,但没有运气……然后您是否检查了jar中到底组装了什么以及生成的MANIFEST.MF文件的外观?我根据上面的评论进行了更新,但没有运气。您能否共享包含main的类的项目的相对路径根据我的评论更新后的方法?附上项目和POM的截图,供您参考。我看了一下您的截图。正如我在问题上所说,您的类应该在src/main/java上,而在您的屏幕截图上,我看到它在src/test/java上。将类移动到该路径下,然后重试。关于maven插件的配置,它看起来不错。感谢更新,我将它移到了src/main/java,但是得到了不同的错误,如“线程中的异常”main“java.lang.NoClassDefFoundError:org/openqa/selenium/WebDriver”
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.myproject.MyProjectMain</mainClass>
            </manifest>
            <manifestEntries>
                <Class-Path>.</Class-Path>
            </manifestEntries>
        </archive>
        <finalName>Connet</finalName>
    </configuration>
</plugin>