1. unit MainUnit;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls, Registry;
  8.  
  9. type
  10. TfrmMain = class(TForm)
  11. btn1: TButton;
  12. edt1: TEdit;
  13. lbl1: TLabel;
  14. procedure btn1Click(Sender: TObject);
  15. private
  16. { Private declarations }
  17. public
  18. { Public declarations }
  19. end;
  20.  
  21. var
  22. frmMain: TfrmMain;
  23.  
  24. function ExpandEnvironment(const strValue: string): string;
  25. function SetGlobalEnvironment(const envName, envValue: string; const isUser: Boolean = True): Boolean;
  26.  
  27. implementation
  28.  
  29. {$R *.dfm}
  30.  
  31. procedure TfrmMain.btn1Click(Sender: TObject);
  32. var
  33. path:string;
  34. begin
  35. SetGlobalEnvironment('JAVA_HOME',edt1.Text);
  36. SetGlobalEnvironment('CLASSPATH','.;%JAVA_HOME%/jre/lib/rt.jar;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib;');
  37. path := ExpandEnvironment('%PATH%');
  38. path := path + ';%JAVA_HOME%/bin';
  39. SetGlobalEnvironment('PATH',path);
  40. end;
  41.  
  42. /// <summary>
  43. /// 设置系统级环境变量参数函数
  44. /// </summary>
  45. /// <param name="envName">环境变量名</param>
  46. /// <param name="envValue">环境变量值</param>
  47. /// <param name="isUser">为true表示只更新当前操作员的环境变量</param>
  48. /// <returns></returns>
  49. function SetGlobalEnvironment(const envName, envValue: string; const isUser: Boolean = True): Boolean;
  50. resourcestring
  51. REG_MLOCATION ='System/CurrentControlSet/Control/Session Manager/Environment'; // 环境变量存储在注册表中的位置
  52. REG_ULOCATION = 'Environment';
  53. begin
  54. with TRegistry.Create do
  55. try
  56. if isUser then // 设置当前用户的环境变量
  57. Result := OpenKey(REG_ULOCATION, True)
  58. else // 设置系统环境变量,对所有用户有效
  59. begin
  60. RootKey := HKEY_LOCAL_MACHINE;
  61. Result := OpenKey(REG_MLOCATION, True);
  62. end;
  63.  
  64. if Result then
  65. begin
  66. WriteString(envName, envValue); // 设置注册表中环境变量的值
  67.  
  68. SetEnvironmentVariable(PChar(envName), PChar(envValue)); // 更新当前进程的环境变量值
  69.  
  70. SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, , Integer(PChar('Environment')));
  71. // 发送消息通知所有上层的窗口,环境参数发生变化
  72. end;
  73. finally
  74. Free;
  75. end;
  76. end;
  77.  
  78. /// <summary>
  79. /// 获取环境变量
  80. /// </summary>
  81. /// <param name="strValue">环境变量名</param>
  82. /// <returns>环境变量值</returns>
  83. function ExpandEnvironment(const strValue: string): string;
  84. var
  85. chrResult: array[..] of Char;
  86. wrdReturn: DWORD;
  87. begin
  88. wrdReturn := ExpandEnvironmentStrings(PChar(strValue), chrResult, );
  89. if wrdReturn = then
  90. Result := strValue
  91. else
  92. begin
  93. Result := Trim(chrResult);
  94. end;
  95. end;
  96.  
  97. end.

java设置环境变量小工具的更多相关文章

  1. JAVA设置环境变量和在DOS下运行java程序

    在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...

  2. Java设置环境变量

    客上转过来的. 非常多人写了非常久java代码.还不知道环境变量是怎么一回事.科普一下. 一.java设置环境变量 - 精简版   1.右键打开我的电脑->属性->高级->环境变量 ...

  3. Java设置环境变量的含义(JAVA_HOME,PATH,CLASSPATH)

    开发Java程序之前,需要在计算机行安装并配置Java开发环境.一种是直接安装Myeclipse,利用其自带的JDK编译运行:另一种是在我们的Windows或者Linux平台下安装JDK,配置环境变量 ...

  4. 一键设置Fluent环境变量小程序

    使用视频教程优酷播放地址: https://v.youku.com/v_show/id_XNDU2MTkwNDg5Mg==.html?spm=a2hzp.8244740.0.0 一键设置环境变量小软件 ...

  5. windows7设置java的环境变量

    win7 下配置 java 环境变量   首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以 ...

  6. Java学习笔记二---设置环境变量JAVA_HOME,CLASSPATH,PATH

    1.环境变量包括: JAVA_HOME,CLASSPATH,PATH 2.设置环境变量的目的: 路径搜索,方便查找到jdk的安装路径.方便搜索用到的类文件.方便搜索用到的可执行文件如java,java ...

  7. java安装及设置环境变量

    目录: java安装 (找不到或无法加载主类 com.sun.tools.javac.Main) 设置环境变量 maven安装及环境变量设置 1. java安装 情景:不使用默认安装 问题:cmd-j ...

  8. Debian 9安装java与设置环境变量

    安装默认JRE / JDK 先更新软件包索引: apt update 检查是否已安装Java: java -version 如果当前未安装Java,您将看到以下输出: Output-bash: jav ...

  9. Windows一键设置环境变量(以设置java环境变量为例)

    右击以管理员方式运行 JDKSetting.bat   @echo off color 0a echo.------------------------------------ echo.TODO:设 ...

随机推荐

  1. HTML-002-弹出对话框

    日常的网页编程中,弹出对话框经常会以各种形式出现,例如:信息提示框.确认框.新增.修改信息等对话框均是其不同的表现形式. 此文以弹出信息新增对话框进行简要演示,经请参阅! 以下为其对应的结构目录: a ...

  2. jquery中奖实例代码

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. malloc函数和其他内存分配函数

    1. 需要包含头文件:#i nclude 或 #i nclude 函数声明(函数原型): void *malloc(int size); 说明:malloc 向系统申请分配指定size个字节的内存空间 ...

  4. C# 值类型和引用类型及参数传递

    值类型和引用类型: C#数据类型分为两大类:值类型和引用类型. 值类型数据主要有:结构体struct,枚举体enum,布尔型bool,浮点型,整型. 引用类型数据主要有:数组,字符串,接口,委托,类. ...

  5. SQLServer找出执行慢的SQL语句

      SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总花费时间ms' , ...

  6. gdb使用_转

    在编程调试中,经常出现段错误,此时可用gdb调试.具体方法为注册段错误信号处理函数,在处理函数中启动gdb.具体代码如下:void segv_handler(int no) { char buf[51 ...

  7. [RGEOS]支持栅格数据读取和显示

    SharpMap真的很强大,这里通过改造GdalRasterLayer类实现了在RGeos项目中支持栅格图像的读取和显示,同时支持影像的无级缩放. GdalRasterLayer通过读取FWTools ...

  8. ARC Rules

    To write and compile source code for ARC, you have to take care of a few things. Just by following t ...

  9. 查看iOS视图层级并修改UIsearchBar的cancel按钮不失去作用

    (lldb) po [self.searchBar recursiveDescription] <UISearchBar: ; ); text = 'p'; opaque = NO; gestu ...

  10. django url 软编码

    期初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了, ...