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

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日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法