首页 > 解决方案 > 通过 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 调用时,问题就出现了。

标签: javac++java-native-interfaceiostream

解决方案


推荐阅读