可执行Jar无法在命令行中运行,但在Eclipse中可以正常运行

时间:2019-04-18 15:46:35

标签: java maven spring-boot

我有一个Java Web应用程序,可以在Eclipse中正确地作为Java应用程序运行。但是不能从命令行运行。报告错误:

java.lang.IllegalArgumentException:在META-INF / spring.factories中找不到自动配置类。如果您使用的是自定义包装,请确保该文件正确无误。

java -jar sec.jar

....
    2019-04-18 11:13:10.492 ERROR 880 --- [           main] o.s.boot.SpringApplication               : Application run failed

    java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.
        at org.springframework.util.Assert.notEmpty(Assert.java:450) ~[sec.jar:na]
        at 
 org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.getCandidateConfigurations(AutoConfigurationImportSelector.java:160) ~[sec.jar:na]
        at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.selectImports(AutoConfigurationImportSelector.java:96) ~[sec.jar:na]
        at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.process(AutoConfigurationImportSelector.java:386) ~[sec.jar:na]
        at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:827) ~[sec.jar:na]
        at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:560) ~[sec.jar:na]
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:188) ~[sec.jar:na]
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:316) ~[sec.jar:na]
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233) ~[sec.jar:na]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273) ~[sec.jar:na]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) ~[sec.jar:na]
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694) ~[sec.jar:na]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[sec.jar:na]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[sec.jar:na]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [sec.jar:na]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [sec.jar:na]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [sec.jar:na]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [sec.jar:na]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [sec.jar:na]
        at com.veiking.sec.SecApplication.main(SecApplication.java:16) [sec.jar:na]

2019-04-18 11:13:10.502  INFO 880 --- [           main] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2ea227af: startup date [Thu Apr 18 11:13:09 EDT 2019]; root of context hierarchy

在src \ main \ resources中,我没有Spring.factories文件。在Eclipse中作为Java应用程序运行时。运行良好。在命令行中,java -jar sec.jar。 Spring Boot无法运行,并带有上面粘贴的错误消息。

需要帮助!谢谢!

POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
   <parent>
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>2.0.1.RELEASE</version>  
    </parent>  
    <groupId>sec_test</groupId>  
    <artifactId>sec</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
    <packaging>jar</packaging>  

    <properties>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <spring-boot.version>2.0.1.RELEASE</spring-boot.version>  
    </properties>  

    <dependencies>  
        <!-- spring-boot -->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-security</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-thymeleaf</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.thymeleaf.extras</groupId>  
            <artifactId>thymeleaf-extras-springsecurity4</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.mybatis.spring.boot</groupId>  
            <artifactId>mybatis-spring-boot-starter</artifactId>  
            <version>1.3.2</version>  
        </dependency> 
        <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.47</version>
        </dependency> 
      <!--  <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <scope>runtime</scope>  
        </dependency>   --> 
        <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>druid</artifactId>  
            <version>1.0.19</version>  
        </dependency>  
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->  
        <dependency>  
            <groupId>com.google.code.gson</groupId>  
            <artifactId>gson</artifactId>  
            <version>2.8.5</version>  
        </dependency>  
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->  
        <dependency>  
            <groupId>org.projectlombok</groupId>  
            <artifactId>lombok</artifactId>  
            <version>1.16.20</version>  
            <scope>provided</scope>  
        </dependency>  
    </dependencies>  

    <build>  
        <finalName>${project.name}</finalName>  
        <pluginManagement>  
            <plugins>  
                <plugin>  
                    <artifactId>maven-compiler-plugin</artifactId>  
                    <configuration>  
                        <source>1.8</source>  
                        <target>1.8</target>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-maven-plugin</artifactId>  
                </plugin>  
            </plugins>  
        </pluginManagement>  
    </build>  
</project> 

想让它在带有大量可执行jar的命令行中运行。

<build>  
    <finalName>${project.name}</finalName>  
    <pluginManagement>  
        <plugins>  
            <plugin>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <configuration>  
                    <source>1.8</source>  
                    <target>1.8</target>  
                </configuration>  
            </plugin>  
            <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <mainClass>${start-class}</mainClass>
            </configuration>
              <executions>
                <execution>
                  <goals>
                    <goal>repackage</goal>
                  </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2-beta-5</version>
          <configuration>
            <archive>
              <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>${start-class}</mainClass>
              </manifest>
            </archive>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
          </configuration>
          <executions>
            <execution>
              <id>assemble-all</id>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        </plugins>  
    </pluginManagement>  
</build> 

通过使用它,它将在打包后重新打包,并且运行良好。谢谢大家!

0 个答案:

没有答案