【问题标题】:Maven Jar main class in src/main/resourcessrc/main/resources 中的 Maven Jar 主类
【发布时间】:2014-02-28 16:47:01
【问题描述】:

我正在向我的 maven 项目添加一个可执行 jar 测试。我已经编辑了我的 pom 文件以使用 src/main/resources 中的主类。但是,当我尝试运行 jar 时,它找不到我的主类。有什么想法吗?

【问题讨论】:

  • 添加注释,我查看了 jar,我的主类在 jar 中,我使用了正确的路径..
  • 真正的问题是……为什么要把主类放到 main/resources 文件夹中?类应该留在 main/java 文件夹,资源在 main/resources...
  • 我明白了,但这只是一个测试程序,所以我希望它与实际代码分开。如果它不可能那很好,只是好奇。
  • 你能在target/classes中看到编译好的.class文件吗?我不确定 src/main/resources 中的 .java 文件是否被编译。

标签: java maven testing jar


【解决方案1】:

为了在运行java -jar your-executable-jar.jar 时启动主类,您的META-INF/MANIFEST.MF 文件应包含Main-Class header

Main-Class: con.example.YourClass

Maven 可以使用maven-jar-plugin 生成清单文件:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        ...
        <configuration>
          <archive>
            <manifest>
              <mainClass>fully.qualified.MainClass</mainClass>
            </manifest>
          </archive>
        </configuration>
        ...
      </plugin>
    </plugins>
  </build>

【讨论】:

    【解决方案2】:

    您的 java 类应该放在 src/main/java 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 2013-08-04
      • 2020-07-24
      • 2014-09-19
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多