JNI - 从CPP写入文件时访问违规

时间:2015-09-27 12:53:26

标签: java c++ windows java-native-interface cygwin

所以在这里我试图从使用JNI从Java调用的C ++程序写入文件。

C ++包含最小值,取自here

#include "JNIHeader.h"
#include <iostream>
#include <fstream>
using namespace std;

JNIEXPORT jlong JNICALL Java_myclass_writeSomeStuff(
    JNIEnv *env, jclass clazz) {
    ofstream myfile;
    myfile.open("example.txt");
    myfile << "Writing this to a file.\n";
    myfile.close();
    return 1;
}

当我运行代码时,出现以下错误:

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180126ff7,     pid=3648, tid=13192
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [cygwin1.dll+0xe6ff7]

当调用其他非I / O方法时,JNI调用工作正常。

在Windows 7 64位计算机上使用G ++ 4.9.3和CYGWIN64进行编译。防病毒已关闭。

现在,我完全陷入困境(JNI很新),欢迎任何帮助!

0 个答案:

没有答案