|
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 升级常见问题 |
2 | 12 |
|
3 | 13 | > JDK8 发布很久了,它提供了许多吸引人的新特性,能够提高编程效率。 |
4 | 14 | > |
@@ -78,36 +88,6 @@ JDK8 不再提供 `sun.*` 包供开发者使用,因为这些接口不是公共 |
78 | 88 |
|
79 | 89 | 找到$JAVA_HOME下 `jre/lib/security/java.security` ,将禁用的算法设置为空:`jdk.certpath.disabledAlgorithms=` 。 |
80 | 90 |
|
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 | | -
|
111 | 91 | ### JVM参数调整 |
112 | 92 |
|
113 | 93 | 在jdk8中,PermSize相关的参数已经不被使用: |
@@ -136,6 +116,43 @@ JDK8 中再也没有 `PermGen` 了。其中的某些部分,如被 intern 的 |
136 | 116 |
|
137 | 117 | XX:MaxMetaspaceSize=256m |
138 | 118 |
|
| 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 | + |
139 | 156 | ## 资料 |
140 | 157 |
|
141 | 158 | - [Compatibility Guide for JDK 8](http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html) |
|
0 commit comments