当前位置: 首页 > 面试题库 >

Maven Jar Builder:找不到或加载主类

湛财
2023-03-14
问题内容

我已经尝试了几天,为我的多模块maven项目创建可执行的jar文件。但是,当我尝试运行此jar文件时,出现“找不到或加载主类src.main.java.com.domain.Mainclass”(出于公司隐私的考虑,我更改了名称domain和MainClass)

我已经搜寻了几天,似乎没有任何明显的技巧可行。

我的项目有一个主要的Maven项目,该项目可以下载所有依赖项(packaging:POM)和几个模块项目(Packaging:Jar)。

一切似乎都可以正常工作,并且所有文件都被编译为类文件,但是不知何故没有将主类添加到pom中。

我的Pom文件插件:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
      <archive>
        <manifest>
          <mainClass>com.domain.project.MainClass</mainClass>
        </manifest>
      </archive>
      </configuration>
      <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
      </executions>
      </plugin>

我使用的命令:mvn clean package,然后我进入目标文件夹并执行:java -jar jarfilename.jar

任何提示或帮助都将受到欢迎!

编辑:

我当前的配置为每个模块创建2个jar文件:

  • projectname-jar-with-dependencies.jar
  • projectname.jar

当我使用主类导航到模块的目标文件夹时,可以成功运行jar文件。但是,当我尝试运行父Maven项目的jar文件(带有packageing:pom的jar文件)时,仍然遇到相同的错误。有谁知道为什么主jar文件找不到主类?

谢谢!


问题答案:

您不应将其src.main.java作为主类的包名称的一部分。它只是默认的Maven项目文件夹结构约定的一部分。您的配置可能应该显示为:

<archive>
    <manifest>
      <mainClass>com.domain.project.MainClass</mainClass>
    </manifest>
  </archive>


 类似资料:
  • 我通过删除诸如、和之类的本地目录来清理整个项目,并在Android Studio中选择。现在,执行命令将得到以下输出: 不用说,我删除的太多了,问题是怎么能再修复呢?你有什么办法解决这个问题吗?

  • 我安装了intellij,但它一直给我错误: 我检查了许多类似问题的答案,但没有一个奏效。我尝试运行的程序: 未创建“Out”文件夹。intellij在展开“...”后使用的完全运行命令 “C:\Program Files\java\jdk1.8.0_181\bin\java.exe”“-javaagent:E:\Program Files\JetBrains\IntelliJ IDEA Comm

  • 我试图构建build.xml文件来构建ElasticSearchProject。简单地说,构建文件称为gradle构建,然后运行测试。然而,我得到了关于Gradle的错误。这是我第一次使用Gradle。错误是 谢谢

  • 这是我的build.gradle文件: 有什么办法解决这个问题吗?对于mainClassName属性,我尝试了各种方法,但似乎都不起作用。

  • 问题内容: 我在编译和运行Java代码时遇到了麻烦,该代码旨在允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题- 有人可以帮我吗?谢谢。 问题答案: 您必须确保将文件的

  • 和这个一样,但还是没弄明白。尝试了所有解决方案.... Maven错误:找不到或加载主类org.codehaus.plexus.ClassWorlds.Launcher.Launcher 错误:找不到或加载主类org.codehaus.plexus.ClassWorlds.Launche r.Launcher

  • 我还尝试将我的类路径设置为'C:\ProgramFiles\java\jre1.8.0_144\lib\rt.jar',尽管我读到这不是必需的。 从class01.java创建class01.class没有问题 不过,当我尝试运行程序时

  • 在完成spring-boot服务器之后,我想将它变成一个jar,以便可以将它部署在远程服务器上。我选择使用maven完成此操作 在.jar-with-dependecies.jar创建之后,我将其上载到服务器上并尝试运行 和其他人一样 链接2 链接3 链接4 mvn命令: 这也不起作用: