我正在为批量用户实施一小组程序。 这个包中的几乎所有内容都是用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");
吗?
答案 0 :(得分:0)
经过一番研究后,我得出的结论是,子进程无法修改父进程'环境。