unit MainUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry; type
TfrmMain = class(TForm)
btn1: TButton;
edt1: TEdit;
lbl1: TLabel;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
frmMain: TfrmMain; function ExpandEnvironment(const strValue: string): string;
function SetGlobalEnvironment(const envName, envValue: string; const isUser: Boolean = True): Boolean; implementation {$R *.dfm} procedure TfrmMain.btn1Click(Sender: TObject);
var
path:string;
begin
SetGlobalEnvironment('JAVA_HOME',edt1.Text);
SetGlobalEnvironment('CLASSPATH','.;%JAVA_HOME%/jre/lib/rt.jar;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib;');
path := ExpandEnvironment('%PATH%');
path := path + ';%JAVA_HOME%/bin';
SetGlobalEnvironment('PATH',path);
end; /// <summary>
/// 设置系统级环境变量参数函数
/// </summary>
/// <param name="envName">环境变量名</param>
/// <param name="envValue">环境变量值</param>
/// <param name="isUser">为true表示只更新当前操作员的环境变量</param>
/// <returns></returns>
function SetGlobalEnvironment(const envName, envValue: string; const isUser: Boolean = True): Boolean;
resourcestring
REG_MLOCATION ='System/CurrentControlSet/Control/Session Manager/Environment'; // 环境变量存储在注册表中的位置
REG_ULOCATION = 'Environment';
begin
with TRegistry.Create do
try
if isUser then // 设置当前用户的环境变量
Result := OpenKey(REG_ULOCATION, True)
else // 设置系统环境变量,对所有用户有效
begin
RootKey := HKEY_LOCAL_MACHINE;
Result := OpenKey(REG_MLOCATION, True);
end; if Result then
begin
WriteString(envName, envValue); // 设置注册表中环境变量的值 SetEnvironmentVariable(PChar(envName), PChar(envValue)); // 更新当前进程的环境变量值 SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, , Integer(PChar('Environment')));
// 发送消息通知所有上层的窗口,环境参数发生变化
end;
finally
Free;
end;
end; /// <summary>
/// 获取环境变量
/// </summary>
/// <param name="strValue">环境变量名</param>
/// <returns>环境变量值</returns>
function ExpandEnvironment(const strValue: string): string;
var
chrResult: array[..] of Char;
wrdReturn: DWORD;
begin
wrdReturn := ExpandEnvironmentStrings(PChar(strValue), chrResult, );
if wrdReturn = then
Result := strValue
else
begin
Result := Trim(chrResult);
end;
end; 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. [收藏夹整理]VC部分

    c++多线程(一) C++11 多线程 鸡啄米:C++编程入门系列之十二(类与对象:面向对象设计的基本思想和特点) 鸡啄米:C++编程入门系列之二十一(C++程序设计必知:类的静态成员) [笔记]VS ...

  2. iOS7 修改导航系统默认返回按钮文字及颜色

    //iOS7 修改系统默认返回按钮文字及颜色 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返" ...

  3. Sequential Read Ahead For SQL Server

    Balancing CPU and I/O throughput is essential to achieve good overall performance and to maximize ha ...

  4. 楼市、股市后下一届ZF将用什么去做超发货币的蓄水池(

    这是天涯论坛上最近的的一个热帖合集,周小川曾直言超发货币需要蓄水池来装,以控制通货膨胀.这个蓄水池楼市做过.股市曾经也充当过,或许现在的地下钱庄也算一部分吧,那下一届政府会如何选择这个蓄水池呢,这或将 ...

  5. jenkins自动构建截图

  6. 读取、写入excel数据

    在实际项目中,不可避免的会操作excel表格.一直以来都是读取excel表格,可今天为了写入excel表格,可是煞费苦心,终于完成,记录下来以便后续使用. 1.读取excel表格的数据 读取excel ...

  7. nc 反弹链接

    nc -l -v -p 80在本机监听80端口,此时80端口是打开的,我们可以在浏览器输入127.0.0.1进行浏览,此时就会出现连接,我们再在监听窗口输入字符,就会在浏览器上显示了.知道上面的作用后 ...

  8. [BS-06] 设置release发布时NSLog不打印设置

    设置release发布时NSLog不打印设置 前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑 ...

  9. Android仿QQ窗口的抖动的动画效果

    就是仿照QQ窗口的抖动效果,在项目的res下创建anim文件夹,再创建两个xml文件:cycle.xml  . myanim.xml   cycle.xml  :   <?xml version ...

  10. 【Android】ListView监听上下滑动(判断是否显示返回顶部按钮

    设置滚动监听判断ListView的滚动方向同时获取屏幕高度.ListView实际高度,判断是否需要展示返回顶部按钮 package com.zihao.activity;   import java. ...