秋梨膏Zzzz 2023-02-20 18:51 采纳率: 69.2%
浏览 63
已结题

CentOS7安装matlab环境Java调用异常,如何解决?

CentOS7安装matlab环境Java调用异常

需要在Linux上通过Java程序调用matlab打包的jar包
安装了 matlab2021a 的运行环境
#问题

java: symbol lookup error: /usr/local/MATLAB/MATLAB_Runtime/v910/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: undefined symbol: __cxa_thread_atexit_impl

调用方法就报错,服务也挂了
有人解决过吗?

  • 写回答

3条回答 默认 最新

  • CodeBytes 2023-02-20 19:00
    关注

    该回答引用ChatGPT
    可以尝试通过以下步骤解决该问题:

    1、确认您的系统中的 libstdc++.so.6 版本是否与 MATLAB 所依赖的版本一致。可以使用以下命令查看:

    strings /usr/local/MATLAB/MATLAB_Runtime/v910/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX
    
    

    2、此命令将返回 libstdc++.so.6 使用的 GLIBCXX 版本。确认此版本是否与系统中安装的 GLIBCXX 版本一致。可以使用以下命令查看:

    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
    
    

    如果两个版本不一致,则说明此问题的原因是版本不兼容。

    3、如果版本不兼容,则可以尝试安装正确版本的 libstdc++.so.6。您可以使用以下命令安装:

    yum install libstdc++.so.6
    
    

    安装完成后,重启您的服务并再次尝试调用 MATLAB 所打包的 jar 包,看看问题是否得到解决。

    如果问题仍未解决,您可以尝试使用 LD_PRELOAD 环境变量来覆盖系统中的 libstdc++.so.6,以确保 MATLAB 使用的是正确版本的 libstdc++.so.6。您可以使用以下命令设置 LD_PRELOAD 环境变量:

    bash
    Copy code
    export LD_PRELOAD=/path/to/matlab/runtime/v910/sys/os/glnxa64/libstdc++.so.6
    其中 /path/to/matlab/runtime/v910/sys/os/glnxa64/libstdc++.so.6 是 MATLAB 所使用的 libstdc++.so.6 的完整路径。设置完毕后,再次尝试调用 MATLAB 所打包的 jar 包,看看问题是否得到解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 创建了问题 2月20日

悬赏问题

  • ¥35 用python实现除法算法中goldschmidt算法
  • ¥15 汇编代码转换成C代码
  • ¥15 除法算法中的归一化具体是怎么变的?
  • ¥20 集成电路的逻辑电路和晶体管简化图
  • ¥15 下载windows builder后的问题
  • ¥15 按要求对程序的逻辑进行更正
  • ¥50 悬赏帮写C++编程 诚信
  • ¥15 端口连接数为什么会有限制
  • ¥15 安卓数据提交之后格式不对
  • ¥15 需要数据库运行的图片