[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 ...
随机推荐
- Netty相关面试题
1.BIO.NIO和AIO的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理.线程开销大. 伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源. N ...
- 面对IBM与亚马逊的犄角攻势,微软云如何招架?
亚马逊AWS和微软Azure是全球公有云的焦点.不就前公布的财报不久前公布的财报,这两家公司云计算的收入越来越接近,从数据显示来看,亚马逊的利润比微软稍高,有人称微软云的高增长来自于捆绑销售,背后真正 ...
- incast.tcl
# Basic Incast Simulation # Check Args if {$argc != 5} { puts "Usage: ns incast <srv_num> ...
- cocos2d-x 的api
最近,在学习cocos2d-x,发现没有一个很好的api手册.因为起初我们学习一些例子之类的内容,会很容易使用,也很容易明白,但是当我们需要用新的api的时候,第一就会疑问有没有这个api,比如:你使 ...
- 用CSS写扫描二维码图标
代码如下: <style>.icon{margin:300px;width:30px;height:30px;position:relative}.icon .b{border:2px s ...
- Spring学习之-各注解的含义总结
注解配置 @ComponentScan("spittr.web"):/在加载Spring上下文时,会扫描spittr.web包查找组件 @ComponentScan注解扫描的组件有 ...
- selenium借助send_keys实现上传(以网易邮箱为例)
#code:utf-8from selenium import webdriverimport time#网易163邮箱dr = webdriver.Firefox()file_path = 'htt ...
- ZT ---- 给孩子的信(孩子写给爸爸妈妈的信在24、25、26楼)
胡同口 > 情感 > 婚后空间 > 给孩子的信(孩子写给爸爸妈妈的信在24.25.26楼) 给孩子的信(孩子写给爸爸妈妈的信在24.25.26楼)分享: 腾讯微博 新浪微博 QQ空间 ...
- Redis客户端 Spring Data Redis(未完)
官网:http://projects.spring.io/spring-data-redis/ 1.0 参考之前的一片文章:Gradle入门实战(Windows版) 构建java applicati ...
- Unix I/O--输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程
输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程 https://www.bbsmax.com/A/o75N88ZxzW/ 10.1 Unix I/O 一个Unix ...