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>但仍然收到相同的错误

解决方案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>

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

我是这样编译的:

javac HelloWorld.java

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

java Helloworld.java

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

所以我们今天有了这个

[

我的项目]-[主] $ 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

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

[

我的项目]-[主] $ MVN -版本[MVNVM]使用 maven:3.5.2Apache 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 来修复它。我不确定该修复程序是否与此问题有关,因为我没有调试我的问题。

最新更新