Mac上解决dose not contain the JNI_CreateJavaVM symbol

举报
一头小山猪 发表于 2022/05/29 06:03:48 2022/05/29
【摘要】 写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据...

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

Mac上解决dose not contain the JNI_CreateJavaVM symbol

本文关键字:Mac、Eclipse、DBeaver、JVM、OpenJDK

一、问题描述

在Mac系统上运行Eclipse或某些基于Eclipse封装的软件(如:DBeaver)时,可能会遇到如下问题:

核心信息为:The JVM shared library “…” does not contain the JNI_CreateJavaVM symbol,其中省略的部分为libjvm.dylib文件的调用路径。

二、产生原因

可以看到这是一个典型的环境问题,Eclipse的运行需要预先安装Java环境,并且版本需要兼容。产生上述问题的原因可能有以下几个:

  • 对应文件已经损坏
  • 版本与要求不匹配
  • 系统架构不能兼容

如果系统本身并不存在任何的Java环境(软件本身也未附带JRE),则会提示另外的错误信息:No Java virtual machine was found。此时应该下载安装JDK,并配置环境变量。

三、解决方法

本方法适用于解决所有基于Eclipse封装的软件,某些需要Java环境运行的软件也可借鉴此办法。

1. 打开配置文件

修改配置文件的目的是为了自己指定JDK家目录以及java命令的完整位置,修改方法如下。

  • 右键软件包 - 显示包内容:

  • 用文本编辑工具打开Info.plist

2. 确定修改位置

定位到key标签内容为Eclipse的部分:

准备在array标签后进行添加。

3. 获取JDK路径

安装好JDK后,如果需要查询家目录位置可以使用如下命令:

/usr/libexec/java_home -V

  
 
  • 1

会显示出当前系统已经安装的JDK版本和当前默认使用的版本。

注:如果将解压安装的JDK复制到 /Library/Java/JavaVirtualMachines 路径下也会自动扫瞄,不同系统版本的JDK存放路径可能不同,以显示为准。

4. 修改配置文件

在指定位置添加如下内容,以jdk18为例:

<string>-vm</string>
<string>/Library/Java/JavaVirtualMachines/jdk-18.0.1.1.jdk/Contents/Home/bin/java</string>

  
 
  • 1
  • 2

效果如下:

保存退出即可,重新运行软件,问题已经解决。

5. 版本如何选择

大家在进行操作时,可以将可能性逐个排除,因为有些时候我们可能没办法精确查找到软件对于Java环境的要求。
在将运行环境指向已安装的JDK后,如果问题依然存在,可能是文件损坏(但是概率极低),可以通过重新安装来排除。
如果重新安装后问题依然存在,需要检查JDK与系统架构是否匹配。目前很多M1芯片的笔记本应该使用arm架构的版本,某些软件对运行环境的要求会比较严格。
如果是版本不匹配一般会有类似Unsupported vsersion之类的提示,可以根据版本号提示再次进行尝试。
小编是在折腾DBeaver时遇到了这个问题,这个软件本身其实已经内置了Java环境,但是很有可能是基于x86_64架构的,最后将环境指向了基于arm架构的OpenJDK,问题解决。
需要的小伙伴可以点击链接下载:https://jdk.java.net/18/

文章来源: sandtower.blog.csdn.net,作者:一头小山猪,版权归原作者所有,如需转载,请联系作者。

原文链接:sandtower.blog.csdn.net/article/details/125013810

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。