vscode在macOS下编译java程序报错Error: A JNI error has occurred, please check your installation and try again

vscode在macOS下编译java程序报错Error: A JNI error has occurred, please check your installation and try again的解决

首先我查阅资料,发现出现这个问题大多都在Windows系统上,macos的案例非常少

我遇到的问题是这样的

alun@bogon code %  /usr/bin/env /Library/Java/JavaVirtualMachines/temurin-17.jdk/Cont
ents/Home/bin/java -XX:+ShowCodeDetailsInExceptionMessages -cp /Users/alun/Library/Ap
plication\ Support/Code/User/workspaceStorage/44c182534a7eeccee02ee254bb242da3/redhat
.java/jdt_ws/code_452e6079/bin java.sj2.AntiVirus 
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.sj2
        at java.base/java.lang.ClassLoader.preDefineClass(ClassLoader.java:895)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:791)
        at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:686)

其中最明显的报错是这两行

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.sj2

这时候我开始查询csdn,发现大多数人的问题是java版本不兼容和java home想关
由于macos他没有像windows一样简单快捷的修改环境变量的方式,所以只能自己摸索

首先判断是否是版本不兼容的问题

我首先使用java -version和javac - version查询,得到的输出是这样的

alun@alundeMacBook-Pro ~ % java -version
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment Temurin-17.0.6+10 (build 17.0.6+10)
OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (build 17.0.6+10, mixed mode)
alun@alundeMacBook-Pro ~ % javac -version
javac 17.0.6

此时可以确定,我的java版本和javac版本一致

其次看java home的问题

Java home
setting.json
发现也没问题

最后我灵机一动,搜索下面一行代码Exception in thread “main” java.lang.SecurityException: Prohibited package name: java.sj2

果然啊,图穷匕见了,是我的文件夹目录带java导致报错,修改过后就完成了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值