Mac上的jd-gui不能使用(打开)

使用Java9不能打开jd-gui,下面是错误信息 WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file

使用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

查看当前java版本

2.找到java安装包位置

sudo find /Library -type d -name "JavaVirtualMachines"

一般类似于这样
Demo

当然也可以以使用which命令找到当前使用中的Java的安装位置
不过可能两个JDK的位置不一样所以还是第一个方法比较好
which

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去执行。
最后保存退出后就可以了

知秋君
上一篇 2024-08-27 17:12
下一篇 2024-08-27 16:48

相关推荐