java - 通过 jni 从 Java 调用时,C++ iostreams 不起作用
问题描述
我有一个通过 java-native-interface 从 java 端调用的 c++ 库。使用的 java 版本是 AmazonCorretto_11.07 和操作系统 Ubuntu 18.04 。问题是我有一些在使用纯 c++ 时运行良好的日志记录代码。但是,当通过 jni 调用代码时,当某个数字插入流时,iostream 会立即卡住。例如下面的代码打印正常std::cerr << "hello world " << std::endl
。但是,以下代码 std::cerr << "hello world " << 2.0 << "hello world" << std::endl
仅打印第一个“hello world”,并在插入数字时“卡住”。我也尝试过 Boost 记录器,但行为是相同的。使用纯 c++ 时一切正常,但是当从 java AmazonCorretto11 通过 jni 调用时,问题就出现了。
解决方案
推荐阅读
- java - 覆盖并附加到现有文件中
- laravel - 循环遍历 laravel 中的集合并从集合中获取特定数据
- android - 如何检查 kotlin 属性是否在 android lint 中是私有的?
- javascript - TypescRipt 错误无法将道具传递给组件 ReactJS
- python-3.x - 如何使用 Flask 在请求处理线程中启动另一个线程?
- reactjs - 使用 react js 创建嵌套表单
- unit-testing - 如何在 DRF 测试中使用 JWT 令牌?
- javascript - 如何从幽灵博客的站点地图中删除作者和标签。?
- cmake - 为什么“target_link_libraries”命令不起作用?(复杂)
- node.js - 在节点中,我是 cros 不适用于跨平台