[Java]Java 9运行Spring Boot项目报错的解决办法
简介
为了学习和尽快掌握 Java 9 的模块化(Module System)新特性,最近安装了 JDK 9,新建了一个 Spring Boot 进行尝试,
过程中遇到了一下报错问题,写下此文谨作为个人笔记,同时也供遇到相同问题的同学参考。
1. Gradle "Could not determine java version from '9.0.1'." 问题
之前本地安装的是 Gradle 4.1 版本,在创建基于Gradle的Spring Boot项目时,在Gradle执行Build:sync的时候出现了
Could not determine java version from '9.0.1'.
的问题,查找原因是我的Gradle版本过低不支持 Java 9,解决方案:
从Gradle官网按照说明下载安装了最新的Gradle(当前是Gradle 4.4.1)。在IDE中配置使用本地指定位置的Gradle,重新创建项目就没有报错了。
2. Spring Boot Java 9 问题
开始使用了 Spring Boot 1.5.x,运行时又报错了,查了一下这里的说明,原来必须要 Spring Boot 2.x 才支持 Java 9,这个重新创建一个 Spring Boot 2.x 项目就可以解决。
3. "java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException" 问题
继续尝试运行,发现报了如下的错误:
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
查找资料有两个解决办法,先说简单的,即在build.gradle添加下面这个依赖:
runtime group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'
如果你用的是Maven的话,添加这个:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
当你看到这篇博客的时候版本可能已经更新了,只要去mvnrepository.com去看最新的就行了。
第二个解决办法是在Stack Overflow上看到的,最高票答案说在运行时把下面这个参数加到命令行选项中:
--add-modules java.xml.bind
显然,这是一个比较麻烦的方法,还是推荐第一个方法“一劳永逸”吧。
小结
以上就是我目前在尝试 Java 9 之初遇到的几个小问题以及对应的解决办法,如不正确请指出。下一步希望进一步深入了解和掌握 Java 9 的模块化特性。
[Java]Java 9运行Spring Boot项目报错的解决办法的更多相关文章
- 启动Spring boot项目报错:java.lang.IllegalArgumentException: LoggerFactory is not a Logback
java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on t ...
- spring boot项目遇到 'lower_case_table_names' 的解决办法
今天自己搭建了spring boot项目,配置的是mysql数据库,启动时报如下错误 Mon Jan 22 23:31:40 CST 2018 WARN: Establishing SSL conne ...
- Eclipse导入已有的项目后项目报错的解决办法
第一种:jsp报错 选择windows-->preference-->列表找到Validation-->点击Disable All ->> Apply ->> ...
- win10 上运行 curl_init() 函数一直报错的解决办法
[问题现象] 1.把 APACHE 的 ZIP 包解压到目录,比如 d:\apache24\ 2.把 PHP 的 ZIP 包解压到目录,比如:d:\php56\ apache 与 php 与 MySQ ...
- Spring Boot 启动报错 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 37
使用命令 java -jar springBoot.jar 启动项目,结果报错如下: Exception at java.lang.String.substring(String.java:) at ...
- spring Boot启动报错Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes
spring boot 启动报错如下 org.springframework.context.ApplicationContextException: Unable to start web serv ...
- 解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 学习了:https://blog.csdn. ...
- 启动spring boot项目时报错:java.lang.ClassNotFoundException: javax.servlet.Filter
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- 用 gradle 运行 spring boot 项目
用 gradle 运行 spring boot 项目(网页中的第6章:https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/gradle-plug ...
随机推荐
- android启动应用
private void openApp(String packageName) { PackageInfo pi = getPackageManager().getPackageInfo(packa ...
- Oracle GoldenGate 详解
一.Oracle GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与目标数据库的数据 ...
- 【Leetcode】【Medium】3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- Linux配置临时IP和网关命令
配置IP以及子网掩码: ifconfig eth0 192.168.1.33 netmask 255.255.255.0 up 设置网关: route add default gw 192.168 ...
- IE 浏览器中英文切换
Oracle相关产品浏览器中可以调节显示中英文
- 工作好搭档(一):松林 SL-B3 人体工学椅
本人从事码农这行职业,已经整整十年零九天,十年一觉如旧梦,仿佛昨天还在SARS. 2008年,我累到腰痛,脖子痛,怎么休息也不见好,去中医院检查,医生诊断,坐的太久,坐姿不对,运动少,轻度颈椎,腰肌劳 ...
- phonegap 的指南针 api Compass
一. Compass 介绍方法参数 1.Compass 也就是,常说的指南针,又叫罗盘 2.方法 compass.getCurrentHeading compass.watchHeading co ...
- Android进阶笔记16:onInterceptTouchEvent、onTouchEvent与onTouch
1. onTouch方法:onTouch方法是View的 OnTouchListener借口中定义的方法,处理View及其子类被touch是的事件处理.当一个View绑定了OnTouchLister后 ...
- datetime中时间的formatter整理
datetime是个很常用的模块,这个连python初学者都应该知道,datetime中有两个函数:strftime和strptime,里面都有个参数format,可以将输出的时间格式化.例如 pri ...
- C#利用NPOI处理excel的类 NPOIHelper.cs
个人的NPOIHelp类,包括datatable导出到excel,dataset导出到excel,excel导入到datatable,excel导入到dataset, 更新excel中的数据,验证导入 ...