从C ++为Batch设置临时环境变量

时间:2016-09-11 11:55:34

标签: c++ windows batch-file java-native-interface

我正在为批量用户实施一小组程序。 这个包中的几乎所有内容都是用C ++编写的,并且是从Java调用的。

如何设置要使用的批处理文件的环境变量?

我尝试过使用它:

JNIEXPORT void JNICALL METHOD_NAME(JNIEnv *env, jclass theclass, jstring key, jstring value) {
        const char* thekey = env->GetStringUTFChars(key, false);
        const char* thevalue = env->GetStringUTFChars(value, false);
        std::string envvar;
        envvar.append(thekey);
        envvar.append("=");
        envvar.append(thevalue);
        _putenv(envvar.c_str());
        env->ReleaseStringUTFChars(key, thekey);
        env->ReleaseStringUTFChars(value, thevalue);
}

但批处理文件没有看到任何新变量。 我应该使用system("set thing=value");吗?

1 个答案:

答案 0 :(得分:0)

经过一番研究后,我得出的结论是,子进程无法修改父进程'环境。