使用Java9不能打开jd-gui,下面是错误信息
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.4.0.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass$3$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @1c3a4799
java1.9不能使用jd-gui,需要使用1.8
1.查看当前java版本:
java –version
2.找到java安装包位置
sudo find /Library -type d -name "JavaVirtualMachines"
一般类似于这样
当然也可以以使用which命令找到当前使用中的Java的安装位置
不过可能两个JDK的位置不一样所以还是第一个方法比较好
3.找到jd-gui和启动脚本地址
同样的方法找到jd-gui对应的地址。
我的如下:
/Applications/JD-GUI.app/Contents/MacOS
打开jd-gui的启动脚本文件(vim,sublime等只要是文本编辑器都可以):
universalJavaApplicationStub.sh
4.修改启动脚本
在257行加入语句:
JAVACMD="/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/java"
脚本修改的位置的上下文如下:
这代表以后启动jd-gui是会使用Java8而不是默认的Java9去执行。
最后保存退出后就可以了