当前位置: 首页 > 知识库问答 >
问题:

运行Spring Bootjar时,找不到或加载主类

巢靖
2023-03-14

我在运行通过'mvn package'创建的jar时遇到问题。我尝试了各种解决办法,但都没有成功。

pom.xml

<groupId>org.springframework</groupId>
<artifactId>rest-service</artifactId>
<version>0.1.0</version>
<packaging>jar</packaging>

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.4.4.RELEASE</version>
</parent>
...
<properties>
  <java.version>1.8</java.version>
  <start-class>ves.sfdc.Application</start-class>
</properties>


<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.0.0</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

ProjectRoot\src\main\java\ves\sfdc\application.java

@SpringBootApplication
@Configuration
@ComponentScan
@EnableAsync
@EnableScheduling
@EnableAutoConfiguration

public class Application{

    @Autowired
    JdbcTemplate jdbcTemplate;
    @Autowired
    AccountService accountService;
    @Autowired
    static
    SfdcUtil sfdcUtil= new SfdcUtil();
    @Autowired
    NamedParameterJdbcTemplate jdbcTemplate2;    

    public static void main(String[] args) throws SecurityException, IOException {   
        SpringApplication.run(Application.class, args);
    }        
}

这个项目在Eclipse中运行良好,当我执行mvn spring-boot:run

我不知道我是不是漏了什么?

共有1个答案

薛晨
2023-03-14

使用Spring Boot,您不需要maven-shade-plugin。Spring靴会照顾到必要的包装。

如果您有多个带有main方法的类,那么您可以使用正确的方法配置spring-boot-maven-plugin:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <mainClass>ves.sfdc.Application</mainClass>
  </configuration>
</plugin>

您可以在maven插件的文档中找到可能的配置列表:http://docs.spring.io/spring-boot/docs/1.5.3.release/maven-plugin/repackage-mojo.html

 类似资料:
  • 首先,我知道这个问题经常被问到。但我的问题不同,所以请耐心看完整的描述。 而且布景似乎还不错。以前对我有用。但我运行了构建的jar,它表明“无法运行或加载主类”。 我发现如果我删除这些文件除了Manifest.mf。它可以很好地工作。我不知道设置有什么不同。 重建项目或重建工件jar。 但不是所有的方法都能奏效。并且我尝试在intellij中用相同的设置在MAC OS和windows OS中构建j

  • 我知道这是一个常见的问题,但我已经尝试了很多事情来使这起作用。 主类名:Test 我包含了带有属性的,如下所示: null 在我的部署简介中,我包括: lib目录 文件的组贡献者(,我正在使用的一个外部)的所有合并内容 注意:我使用的是JDeveloper12c IDE 无法运行jar文件:无法找到或加载主类Hello

  • 当我运行“./sdkmanager--licenses”时,出现“Could not find or load main class java.se.ee”错误。 我在stackoverflow上发现了很多类似的问题,但没有一个解决方案适用于我。 我已经试过了:1-降级到Java8

  • 我已经使用netbeans制作了jar文件,使用Build和Clean项目选项。我得到了.jar文件,现在当我执行它一小段时间后,cmd窗口出现,并给出一个错误:“Could not find or load main class while executing jar file” 但是,如果我使用命令提示符Java-jar执行jar,它可以正常工作 Netbeans的输出为: 而在jar文件中,

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

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