有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我的maven构建有以下配置,我已经多次检查类名和包名,以确保其准确性。但每次我跑步时: java -jar <snapshot-with-dependencies>.jar我得到了{}。 我的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) 个答案

  1. # 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>
    
  2. # 2 楼答案

    所以我们今天有这个

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

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

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

    MAVEN_OPTS=-Dhttp。proxyHost=www代理。myproxyprovider。com-Dhttp。proxyPort=80-Dhttps。proxyHost=www代理。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

  3. # 3 楼答案

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

    我是这样编译的:

    javac HelloWorld.java
    

    我试着用同样的分机运行:

    java Helloworld.java
    

    当我取下那个。java并像java HelloWorld那样重写命令,程序运行得非常完美。:)

  4. # 4 楼答案

    我也经历了同样的错误。我通过从Maven 3.3.3升级到Maven 3.6.3来修复它。我不确定这个修复是否与这个问题有关,因为我没有调试我的问题