Maven:无法找到或加载主类

时间:2018-04-16 21:58:06

标签: java maven

我的maven构建有以下配置,我多次检查了类名和包名,以确保它的准确性。但每次我跑: java -jar <snapshot-with-dependencies>.jar我得Error: Could not find or load main class 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>

我还尝试添加<sourceDirectory>src/main/java/com/atlassian/</sourceDirectory>,但仍然遇到相同的错误

4 个答案:

答案 0 :(得分:1)

<强>解决方法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>

答案 1 :(得分:0)

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

我这样编译:

javac HelloWorld.java

我也尝试使用相同的扩展程序运行:

java Helloworld.java

当我删除.java并重写了像Hello HelloWorld这样的命令时,程序运行完美。 :)

答案 2 :(得分:0)

所以我们今天有这个

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

我们在代理方面遇到了问题。

检查您的MAVEN_OPTS,并确保如果您要向maven发送代理,则该代理存在并且可以使用。

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

或者如果它已经设置并且您不应该拥有它,那么就摆脱它。

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

答案 3 :(得分:0)

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