Java Maven:无法找到或加载主类

Java Maven:无法找到或加载主类,java,maven,Java,Maven,我的maven构建有以下配置,我已经多次检查类名和包名,以确保其准确性。但每次我跑步时: java-jar.jar我得到错误:无法找到或加载主类com.atlassian.JiraRestCaller。 我的pom文件摘录如下 <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configurat

我的maven构建有以下配置,我已经多次检查类名和包名,以确保其准确性。但每次我跑步时:
java-jar.jar
我得到
错误:无法找到或加载主类com.atlassian.JiraRestCaller
。 我的pom文件摘录如下

<plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.atlassian.JiraRestCaller</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
</plugins>

maven汇编插件
com.atlassian.JiraRestCaller
带有依赖项的jar
组装
包裹
单一的

我还尝试添加
src/main/java/com/atlassian/
,但仍然得到相同的错误解决方案1:

我花了相当多的时间试图解决这个问题。我以为我的类路径设置不正确,但问题是我键入了:

java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool 
而不是:

java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的含义是包含完整的路径名,而不是完整的包名

解决方案2:

如果使用Maven构建JAR文件,请确保在pom.xml文件中指定主类:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>class name us.com.test.abc.MyMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

maven jar插件
类名us.com.test.abc.MyMainClass

解决方案1:

我花了相当多的时间试图解决这个问题。我以为我的类路径设置不正确,但问题是我键入了:

java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool 
而不是:

java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的含义是包含完整的路径名,而不是完整的包名

解决方案2:

如果使用Maven构建JAR文件,请确保在pom.xml文件中指定主类:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>class name us.com.test.abc.MyMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

maven jar插件
类名us.com.test.abc.MyMainClass

如果您的案例与我的案例特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题

我是这样编译的:

javac HelloWorld.java
我也试着用相同的扩展名运行:

java Helloworld.java

当我删除.java并像java HelloWorld那样重写命令时,程序运行得非常好。:)

如果您的案例与我的案例特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题

我是这样编译的:

javac HelloWorld.java
我也试着用相同的扩展名运行:

java Helloworld.java
当我删除.java并像java HelloWorld那样重写命令时,程序运行得非常好。:)

所以我们今天有这个

[myproject]-[master]$mvn [MVNVM]使用maven:3.5.2 错误:无法找到或加载主类html

我们和代理有问题

检查您的MAVEN_选项,并确保如果您要向MAVEN发送代理,它存在并且您可以使用它

MAVEN_OPTS=-Dhttp.proxyHost=www-proxy.myproxyprovider.com-Dhttp.proxyPort=80-Dhttps.proxyHost=www-proxy.myproxyprovider.com-Dhttps.proxyPort=80

或者如果它已经设置好了,而你不应该有一个,那么就把它扔掉

[myproject]-[master]$mvn-版本 [MVNVM]使用maven:3.5.2 Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d;2017-10-18T08:58:13+01:00) Maven home:/Users/bamcgill/.mvnvm/apache-Maven-3.5.2

所以我们今天就有了这个

[myproject]-[master]$mvn [MVNVM]使用maven:3.5.2 错误:无法找到或加载主类html

我们和代理有问题

检查您的MAVEN_选项,并确保如果您要向MAVEN发送代理,它存在并且您可以使用它

MAVEN_OPTS=-Dhttp.proxyHost=www-proxy.myproxyprovider.com-Dhttp.proxyPort=80-Dhttps.proxyHost=www-proxy.myproxyprovider.com-Dhttps.proxyPort=80

或者如果它已经设置好了,而你不应该有一个,那么就把它扔掉

[myproject]-[master]$mvn-版本 [MVNVM]使用maven:3.5.2 Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d;2017-10-18T08:58:13+01:00)
Maven home:/Users/bamcgill/.mvnvm/apache-Maven-3.5.2

我遇到了相同的错误。我通过从Maven 3.3.3升级到Maven 3.6.3来修复它。我不确定该修复是否与此问题相关,因为我没有调试我的问题。

我遇到了相同的错误。我通过从Maven 3.3.3升级到Maven 3.6.3来修复它。我不确定该修复是否与此问题相关,因为我没有调试我的问题。

谢谢您的提示。事实上,我确实提供了我的主课名。它在pom文件中(作为我问题的一部分)。我正在使用maven编译可执行文件,谢谢你的提示。事实上,我确实提供了我的主课名。它在pom文件中(作为我问题的一部分)。我正在使用maven从
jar tvf your.jar
Hi@ThorbjørnRavnAndersen编译可执行的jarShow输出。我发现了这个问题——这对我来说很奇怪,但对你来说可能有意义——代码是用Java1.8编写的——maven运行的系统是1.7。一旦我将maven升级到使用1.8,一切都很好。错误消息并不表明这是问题所在。然后你错过了一些其他的东西或者做了一些你没有提到的事情。显示
jar tvf your.jar的输出
Hi@ThorbjørnRavnAndersen我发现了这个问题-这对我来说很奇怪,但对你来说可能有意义-代码是用Java1.8编写的-maven运行的系统是1.7。一旦我将maven升级到使用1.8,一切都是w