X Tutup
Skip to content

Commit c4a55c8

Browse files
committed
📝 Writing docs.
1 parent 4c4ad96 commit c4a55c8

File tree

2 files changed

+49
-32
lines changed

2 files changed

+49
-32
lines changed

docs/SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
* [Java 实现消息摘要与数字签名](advanced/encode/java-message-digest.md)
1616
* [Java 实现加密算法](advanced/encode/java-encryption.md)
1717
* [Java 实现加密算法](advanced/encode/java-encryption.md)
18-
* [JDK 升级](advanced/jdk-upgrade.md)
1918

2019
## Java 并发
2120

@@ -36,4 +35,5 @@
3635

3736
* [附录](appendix/README.md)
3837
* [资源](appendix/resources.md)
38+
* [JDK8 升级常见问题](appendix/jdk8-upgrade.md)
3939

Lines changed: 48 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# JDK 升级到 1.8 常见问题
1+
---
2+
title: jdk8-upgrade.md
3+
date: 2017/11/08
4+
categories:
5+
- javase
6+
tags:
7+
- javase
8+
- 升级
9+
---
10+
11+
# JDK8 升级常见问题
212

313
> JDK8 发布很久了,它提供了许多吸引人的新特性,能够提高编程效率。
414
>
@@ -78,36 +88,6 @@ JDK8 不再提供 `sun.*` 包供开发者使用,因为这些接口不是公共
7888

7989
找到$JAVA_HOME下 `jre/lib/security/java.security` ,将禁用的算法设置为空:`jdk.certpath.disabledAlgorithms=`
8090

81-
### 第三方jar包无法使用
82-
83-
有些第三方 jar 包基于非 JDK8 版本编译,可能会存在兼容性问题。
84-
85-
这种情况只能具体问题具体分析,下面列举几个常用 jar 包。
86-
87-
- 查找组件用到了 mvel,mvel 为了提高效率进行了字节码优化,正好碰上 JDK8 死穴,所以需要升级。
88-
89-
```xml
90-
<dependency>
91-
<groupId>org.mvel</groupId>
92-
<artifactId>mvel2</artifactId>
93-
<version>2.2.7.Final</version>
94-
</dependency>
95-
```
96-
97-
- javassist
98-
99-
```xml
100-
<dependency>
101-
<groupId>org.javassist</groupId>
102-
<artifactId>javassist</artifactId>
103-
<version>3.18.1-GA</version>
104-
</dependency>
105-
```
106-
107-
> **注意**
108-
>
109-
> 有些部署工具不会删除旧版本 jar 包,所以可以尝试手动删除老版本 jar 包。
110-
11191
### JVM参数调整
11292

11393
在jdk8中,PermSize相关的参数已经不被使用:
@@ -136,6 +116,43 @@ JDK8 中再也没有 `PermGen` 了。其中的某些部分,如被 intern 的
136116

137117
XX:MaxMetaspaceSize=256m
138118

119+
### 字节码问题
120+
121+
ASM 5.0 beta 开始支持 JDK8
122+
123+
**字节码错误**
124+
125+
```
126+
Caused by: java.io.IOException: invalid constant type: 15
127+
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1113)
128+
```
129+
130+
- 查找组件用到了 mvel,mvel 为了提高效率进行了字节码优化,正好碰上 JDK8 死穴,所以需要升级。
131+
132+
```xml
133+
<dependency>
134+
<groupId>org.mvel</groupId>
135+
<artifactId>mvel2</artifactId>
136+
<version>2.2.7.Final</version>
137+
</dependency>
138+
```
139+
140+
- javassist
141+
142+
```xml
143+
<dependency>
144+
<groupId>org.javassist</groupId>
145+
<artifactId>javassist</artifactId>
146+
<version>3.18.1-GA</version>
147+
</dependency>
148+
```
149+
150+
> **注意**
151+
>
152+
> 有些部署工具不会删除旧版本 jar 包,所以可以尝试手动删除老版本 jar 包。
153+
154+
http://asm.ow2.org/history.html
155+
139156
## 资料
140157

141158
- [Compatibility Guide for JDK 8](http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html)

0 commit comments

Comments
 (0)
X Tutup