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

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日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵