C++ 设置Java 环境变量完整的例子
#include <stdio.h> #include <stdlib.h> #include <windows.h> #include <iostream> #include <cstdio> #include <string> #include <tchar.h> using namespace std; void setValue(HKEY hRootKey,char *key,char plusPath[],char *key_value,DWORD dwType); void main() { // Java 环境变量路径 // char plusPath[] = ";C:\\software\\develop\\eclipse49\\plus\\jdk1.8.0_191\\bin"; char plusPath[] = ";D:\\AUTO_Uninstaller_x64_8.8.1\\bin\\jre1.8.0_191\\bin"; // 根路径 HKEY hRootKey=HKEY_LOCAL_MACHINE; // 系统环境变量 // HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment char *key = "System\\CurrentControlSet\\Control\\Session Manager\\Environment"; // 需要修改的值 char *key_value="Path"; // key_value的数据类型 DWORD valueType = REG_EXPAND_SZ; // 调用修改注册表值的函数 setValue(hRootKey,key,plusPath,key_value,valueType); // 测试是否修改成功 cout << "===================================================================="; cout << "\n"; system("java -version"); system("pause"); } void setValue(HKEY hRootKey,char *key,char plusPath[],char *key_value,DWORD dwType) { HKEY hKey; ] = {}; DWORD dwSize = sizeof(data); DWORD dwDisposition=REG_OPENED_EXISTING_KEY; //如果不存在就创建 LONG resulte=RegCreateKeyExA(hRootKey,key,,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition); if (resulte != ERROR_SUCCESS) { //MessageBox(NULL, _T("打开注册表失败"), _T("提示"), MB_OK); cout << "打开注册表失败 [" << key <<"]"; cout << "\n"; } else { if (dwDisposition == REG_OPENED_EXISTING_KEY) { //MessageBox(NULL, _T("打开一个存在的注册表项"), _T("提示"), MB_OK); cout << "打开注册表项 [" << key <<"]"; cout << "\n"; } else if (dwDisposition == REG_CREATED_NEW_KEY) { //MessageBox(NULL, _T("新建一个注册表项"), _T("提示"), MB_OK); cout << "新建注册表项 [" << key <<"]"; cout << "\n"; } } // 打开该key,在程序末尾关闭 LONG OpenKey_nError = RegOpenKeyExA(HKEY_LOCAL_MACHINE, key, , KEY_READ|KEY_WRITE, &hKey); if (OpenKey_nError==ERROR_FILE_NOT_FOUND) { cout << "Creating registry key: " << key << endl; OpenKey_nError = RegCreateKeyExA(hRootKey, key, NULL, NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hKey, NULL); } if (OpenKey_nError) cout << "Error: " << OpenKey_nError << " Could not find or create " << key << endl; // 查询该值 LONG QueryValue_nError = RegQueryValueExA(hKey, key_value, NULL, &dwType, (LPBYTE)data, &dwSize); if (QueryValue_nError) cout << "Error: " << QueryValue_nError << " Could not set registry value: " << key_value << endl; int length=strlen(plusPath) + strlen(data); string data_str=data; string plusPath_str=plusPath; string plus_str; string::size_type idx; idx=data_str.find(plusPath_str); if(idx == string::npos ){//不存在 char *environment = new char[length]; plus_str=data_str+plusPath_str; strcpy(environment, plus_str.c_str());// cout << environment; cout << "\n"; LONG SetValue_nError = RegSetValueExA(hKey, key_value, NULL, REG_EXPAND_SZ, (const unsigned char *)environment, strlen(environment)); if (SetValue_nError) cout << "Error: " << SetValue_nError << " Could not set registry value: " << key_value << endl; }else{ cout << "已存在 [" << plusPath << "]"; cout << "\n"; } DWORD dwResult; SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, ,LPARAM(_T(, &dwResult);//广播立即执行 LONG QueryValue2_nError = RegQueryValueExA(hKey, key_value, NULL, &dwType, NULL, &dwSize); if (QueryValue2_nError==ERROR_FILE_NOT_FOUND){ // The value will be created and set to data next time SetVal() is called. }else if (QueryValue2_nError) cout << "Error: " << QueryValue2_nError << " Could not get registry value : " << key_value << endl; RegCloseKey(hKey); }
C++ 设置Java 环境变量完整的例子的更多相关文章
- windows上自动设置java环境变量的脚本
近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要设置java环境变量,java环境变量要设置JAVA_HOME,Path,CLASSPATH三个值,每次配置查百度复制粘贴都很麻 ...
- 【转】windows上自动设置java环境变量的脚本
转载:http://www.cnblogs.com/flowwind/p/4066146.html 近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要 设置java环境变量,ja ...
- Linux中如何设置java环境变量
这里介绍Linux下如何设置java环境变量. 工具/原料 Linux java环境变量 方法/步骤 1 查看java的安装路径 查看java执行路径 配置java环境变量 java的安装 ...
- 利用脚本,一键设置java环境变量(默认安装路径)
Windows一键设置Java环境变量 右击以管理员方式运行,注意自行更改JAVA_HOME目录文件安装目录. JDKSetting.bat @echo off color 0a echo.----- ...
- 为什么要设置Java环境变量(windows)
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示 ...
- 为什么要设置Java环境变量(详解)
关于java环境变量配置讲解: 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下 ...
- Linux学习11-CentOS如何设置java环境变量
前言 之前用yum安装的java,现在想添加环境变量,yum安装的java路径在哪呢?如何找到安装的路径,把jdk添加到环境变量. 本篇详细讲解linux系统设置java环境变量 找到jdk路径 之前 ...
- 利用vbs设置Java环境变量
每次PC重装后,又要设定Java环境变量,向我这种不爱记得人,老是要去找设定内容 感觉设置环境变量还真是比较麻烦,我是希望可以做成点击一下就ok的,这样重装系统就不用那么麻烦了, 但是考虑到通用性,为 ...
- 为什么要设置Java环境变量(详解)[转]
从大二开始接触Java,之后是断断续续的学习.大三真正开始Java之旅,估计大部分初学者在学Java时被Java的环境变量搞的晕头转向,虽然找到了正确设置环境变量的方式,但其中的原因一知半解,设置压根 ...
随机推荐
- PHP字符串替换函数
str_replace函数 描述:实现字符串替换,区分大小写 语法:mixed str_replace(mixed $search, mixed replace, mixed $subject, [i ...
- Java crash问题分析
Java的应用有时候会因为各种原因Crash,这时候会产生一个类似java_errorpid.log的错误日志.可以拿到了 这个日志,怎样分析Crash的原因呢?下面我们来详细讨论如何分析java_e ...
- kbmmw 中简单返回 extjs 数据JSON
以前,我们通过自己写json 来返回数据表的内容.在delphi 10.2.2中,官方自带了一个FDBatchMoveJSONWriter1 来直接处理数据库内容.把结果推送到浏览器客户端. 今天我们 ...
- js-day02
1.数据类型转换2.函数3.分支结构*******************************1.数据类型转换 数据类型:number,string,boolean,null,undefined ...
- Educational Codeforces Round 51 D. Bicolorings(dp)
https://codeforces.com/contest/1051/problem/D 题意 一个2*n的矩阵,你可以用黑白格子去填充他,求联通块数目等于k的方案数,答案%998244353. 思 ...
- etf基金和lof基金区别
①,含义不同.etf即交易指数开放基金,是跟踪某一指数的可以在交易所上市的开放式基金.lof基金是上市向开放基金,是中国首创的一种基金类型,也是etf基金的中国化.②,申购赎回的场所不同.etf和lo ...
- 关于CSS的优先级,CSS优先级计算,多个class引用
原则一: 继承不如指定 原则二: #id > .class > 标签选择符 原则三:越具体越强大 原则四:标签#id >#id ; 标签.class > .class CSS优 ...
- tp5,thinkphp5,隐藏index.php,隐藏入口文件
一.找到/public/.htaccess文件 Apache: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews R ...
- fPLL结构及动态配置
输入参考时钟 从上图可以看到参考时钟输入的几种类型. 注意:fPLL的校正是由CLKUSR来驱动的,这个时钟必须要保持稳定. 参考时钟利用器 N计数器 N计数器会把参考时钟利用器输出进行分 ...
- Arria10中的IOPLL与fPLL
最近在用Arria10.从480降到270的过程中,IOPLL出现问题,大概是说几个Bank的IOPLL已经被占用,没有空间再给别的IOPLL去适配. 因为在工程中,所用的PLL多达35个之多,其中明 ...