windows下java启动失败
一、问题现象
微服务原来在linux下部署,现在有客户环境为windows server,把linux的包拷到windows server下,使用java -jar命令无法启动。同样的包在linux可以启动,就是在windows启动不了。
问题提示:
现象一:
2023-10-27 13:40:05.682 ERROR 11736 --- [main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field authSecurityUserDetailService in com.xxxx.xxxx.support.security.integration.authentication.config.AuthenticationOAuth2Configuration required a bean of type 'com.xxxx.xxxx.platform.core.support.service.AuthSecurityUserDetailService' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.xxxx.xxxx.platform.core.support.service.AuthSecurityUserDetailService' in your configuration.
现象二:
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:176) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:136) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.scanner.ScannerImpl.scanPlain(ScannerImpl.java:1987) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchPlain(ScannerImpl.java:1044) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:399) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:136) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:95) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:134) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:494) ~[snakeyaml-1.26.jar!/:?]
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:200) ~[spring-beans-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:164) ~[spring-beans-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:76) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at com.alibaba.cloud.nacos.parser.NacosDataParserHandler.parseNacosData(NacosDataParserHandler.java:92) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData(NacosPropertySourceBuilder.java:97) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.build(NacosPropertySourceBuilder.java:73) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosPropertySource(NacosPropertySourceLocator.java:199) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosDataIfPresent(NacosPropertySourceLocator.java:186) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadApplicationConfiguration(NacosPropertySourceLocator.java:149) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:103) ~[spring-cloud-starter-alibaba-nacos-config-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:52) ~[spring-cloud-context-2.2.9.RELEASE.jar!/:2.2.9.RELEASE]
at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:47) ~[spring-cloud-context-2.2.9.RELEASE.jar!/:2.2.9.RELEASE]
at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:98) ~[spring-cloud-context-2.2.9.RELEASE.jar!/:2.2.9.RELEASE]
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:626) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:370) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at com.xxxx.xxxx.workflow.start.HussarWorkflowApplication.main(HussarWorkflowApplication.java:33) ~[classes!/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_333]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_333]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_333]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_333]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[hussar-workflow-start.jar:?]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[hussar-workflow-start.jar:?]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[hussar-workflow-start.jar:?]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[hussar-workflow-start.jar:?]
Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(Unknown Source) ~[?:1.8.0_333]
at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:1.8.0_333]
at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:1.8.0_333]
at java.io.InputStreamReader.read(Unknown Source) ~[?:1.8.0_333]
at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:125) ~[snakeyaml-1.26.jar!/:?]
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:183) ~[snakeyaml-1.26.jar!/:?]
... 65 more
2023-10-27 09:27:22.668 ERROR 7596 --- [main] o.s.b.SpringApplication : Application run failed
java.lang.IllegalArgumentException: Could not find class [org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:334) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:446) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:369) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:284) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:193) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:106) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor(AnnotationConfigUtils.java:285) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:102) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:81) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.registerBeanDefinitionForImportedConfigurationClass(ConfigurationClassBeanDefinitionReader.java:160) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) ~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.13.RELEASE.jar!/:2.2.13.RELEASE]
at com.xxxx.xxxx.workflow.start.HussarWorkflowApplication.main(HussarWorkflowApplication.java:33) ~[classes!/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_333]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_333]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_333]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_333]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[hussar-workflow-start.jar:?]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[hussar-workflow-start.jar:?]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[hussar-workflow-start.jar:?]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[hussar-workflow-start.jar:?]
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_333]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_333]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92) ~[hussar-workflow-start.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_333]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_333]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_333]
at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:324) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
... 32 more
二、解决思路
通过现象一,发现是类无法找到,这个提示百度之后,发现毫无用处
通过现象二,刚开始没注意到上边的提示,然后,就通过最后的“Could not find class”进行查询,查询之后,毫无用处。
查询无果后,在不断修改重启的时候,看到了还有一处报错“org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1”,开始查询这个报错的原因,发现是yaml格式不正确,里边包含了中文,没有识别出来
最后修改启动命令为
chcp 65001 #修改cmd字符格式,解决中文乱码问题
java -Dfile.encoding=utf-8 -jar xxxx.jar