spring 引导应用程序无法从 cmd 启动如何从 cmd 启动它

spring boot application would not statring from cmd how to start it from cmd

运行ning spring boot project from cmd

出现以下错误

我想 运行 我的 spring 从 cmd 引导项目,但我不明白它有什么问题为什么它不起作用,为什么它不 运行宁。当我 运行 我的 spring 引导项目使用 inteliij IDE 它 运行 没有任何问题和错误但是当我尝试 运行 通过 cmd 使用以下命令:java -jar target/myProject-1.0-SNAPSHOT.jar

2019-02-01 15:24:31.083  INFO 15164 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/lfms]   : Initializing Spring embedded WebApplicationContext
2019-02-01 15:24:31.083  INFO 15164 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 7899 ms
2019-02-01 15:24:31.314  INFO 15164 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2019-02-01 15:24:31.319  INFO 15164 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-02-01 15:24:31.320  INFO 15164 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-02-01 15:24:31.321  INFO 15164 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2019-02-01 15:24:31.321  INFO 15164 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2019-02-01 15:24:31.444  WARN 15164 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileUtil' defined in URL [jar:file:/D:/tecor/TL/lfms/target/lfms-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/com/lfms/util/FileUtil.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
2019-02-01 15:24:33.679  INFO 15164 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-02-01 15:24:33.706  INFO 15164 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-02-01 15:24:33.715 ERROR 15164 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileUtil' defined in URL [jar:file:/D:/tecor/TL/lfms/target/lfms-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/com/lfms/util/FileUtil.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1238) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1137) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean[=11=](AbstractBeanFactory.java:317) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) ~[spring-context-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.3.RELEASE.jar!/:2.0.3.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.3.RELEASE.jar!/:2.0.3.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.3.RELEASE.jar!/:2.0.3.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.3.RELEASE.jar!/:2.0.3.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.3.RELEASE.jar!/:2.0.3.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.3.RELEASE.jar!/:2.0.3.RELEASE]
        at com.lfms.Application.main(Application.java:19) [classes!/:1.0-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_144]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_144]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_144]
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [lfms-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [lfms-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [lfms-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [lfms-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
Caused by: java.lang.ExceptionInInitializerError: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_144]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.8.0_144]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.8.0_144]
        at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[na:1.8.0_144]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:170) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1230) ~[spring-beans-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
        ... 25 common frames omitted
Caused by: org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:176) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:171) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:126) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.scanner.ScannerImpl.scanToNextToken(ScannerImpl.java:1177) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:287) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.parser.ParserImpl$ParseImplicitDocumentStart.produce(ParserImpl.java:195) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:107) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:139) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:524) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:452) ~[snakeyaml-1.23.jar!/:na]
        at com.lfms.util.FileUtil.<clinit>(FileUtil.java:37) ~[classes!/:1.0-SNAPSHOT]
        ... 32 common frames omitted
Caused by: java.io.IOException: Stream closed
        at java.io.PushbackInputStream.ensureOpen(Unknown Source) ~[na:1.8.0_144]
        at java.io.PushbackInputStream.read(Unknown Source) ~[na:1.8.0_144]
        at org.yaml.snakeyaml.reader.UnicodeReader.init(UnicodeReader.java:92) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:124) ~[snakeyaml-1.23.jar!/:na]
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:183) ~[snakeyaml-1.23.jar!/:na]
        ... 46 common frames omitted

FileUtil file code that show's how it was accessing application.yml file properties

Yaml yml = new Yaml();
        Map<String, Map<String, Object>> ymlProperties = yml.load(ClassLoader.getSystemResourceAsStream("application.yml"));

当您将 Spring 引导应用程序打包为可执行 jar 并启动它时,ClassLoader 结构会发生变化。结果,系统 class 加载程序无法找到您的 application.yml 文件。与其使用 ClassLoader.getSystemResourceAsStream(String),不如使用 FileUtils.class.getClassLoader().getResourceAsStream(String)。这将确保您使用加载 FileUtil class 的 class 加载程序来读取 application.yml 文件。