У меня была проблема с интерфейсом java и jni.
Я создал систему для подключения к какому-либо веб-сайту, распечатки содержимого и отправки содержимого в jni c ++.
Но у меня есть некоторые проблемы. Когда я пытаюсь отправить BufferedReader в строке в jni, я получаю пустое pointerexception java
Так что вы можете мне помочь, пожалуйста! Спасибо !
C ++:
#include </jdk1.8.0_191/include/jni.h>
#include "/build/classes/crawlhttpsmemoryc_Crawlhttpsmemoryc.h"
JNIEXPORT jstring JNICALL Java_crawlhttpsmemoryc_Crawlhttpsmemoryc_seaubsiteco
(JNIEnv * env, jobject xtest, jstring xsd) {
std::string strServiceIp(env->GetStringUTFChars(xsd, NULL));
std::cout << "du c++" << strServiceIp;
}
И Java:
public static void main(String[] args) throws MalformedURLException, IOException {
String httpsURL = "https://gnu.org";
URL myUrl = new URL(httpsURL);
HttpsURLConnection conn = (HttpsURLConnection)myUrl.openConnection();
conn.setRequestProperty("Content-Language", "en-US");
InputStream is = conn.getInputStream();
System.out.println(org.apache.commons.io.IOUtils.toString(is));
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String inputLine;
String x = "";
StringBuilder xbuf = new StringBuilder();
while ((inputLine = br.readLine()) != null) {
xbuf.append(inputLine);
}
x= xbuf.toString();
new Crawlhttpsmemoryc().seaubsiteco(x);
Трассировка стека:
Exception in thread "main" java.lang.NullPointerException at crawlhttpsmemoryc.Crawlhttpsmemoryc.seaubsiteco(Native Method)