吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 650|回复: 7
收起左侧

[其他原创] Java JDK(系统环境变量一键设置工具) Delphi版源码在此

  [复制链接]
冥界3大法王 发表于 2025-7-21 11:42
本帖最后由 冥界3大法王 于 2025-7-21 11:52 编辑

Java JDK(系统环境变量一键设置工具)

[Delphi] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
unit Unit2;
 
interface
 
uses
  Registry, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls;
 
type
  TForm2 = class(TForm)
    btnSetEnv: TButton;
    btnVerify: TButton;
    edtJdkPath: TEdit;
    lblStatus: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure btnSetEnvClick(Sender: TObject);
    procedure btnVerifyClick(Sender: TObject);
  private
    function SetJavaEnvironment(const JdkPath: string): Boolean;
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.dfm}
 
// 核心函数:设置Java环境变量
function TForm2.SetJavaEnvironment(const JdkPath: string): Boolean;
var
  Reg: TRegistry;
  PathValue: string;
begin
  Result := False;
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
 
    // 1. 设置JAVA_HOME
    if Reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment', True) then
    begin
      Reg.WriteString('JAVA_HOME', JdkPath);
      Reg.CloseKey;
    end;
 
    // 2. 更新PATH
    if Reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment', False) then
    begin
      PathValue := Reg.ReadString('Path');
      if Pos(JdkPath + 'bin', PathValue) = 0 then
      begin
        PathValue := JdkPath + 'bin;' + PathValue;
        Reg.WriteString('Path', PathValue);
      end;
      Reg.CloseKey;
    end;
 
    // 广播环境变量变更通知
    SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, LPARAM(PChar('Environment')), SMTO_ABORTIFHUNG, 5000, nil);
 
    Result := True;
  except
    on E: Exception do
      lblStatus.Caption := '错误:' + E.Message;
  end;
  Reg.Free;
end;
 
 
 
// 设置环境变量
procedure TForm2.btnSetEnvClick(Sender: TObject);
begin
  var JdkPath: string;
  begin
    JdkPath := IncludeTrailingPathDelimiter(edtJdkPath.Text);
 
    if not DirectoryExists(JdkPath) then
    begin
      lblStatus.Caption := '错误:JDK 路径不存在!';
      Exit;
    end;
 
    if not FileExists(JdkPath + 'bin\java.exe') then
    begin
      lblStatus.Caption := '错误:未找到 java.exe';
      Exit;
    end;
 
    if SetJavaEnvironment(JdkPath) then
      lblStatus.Caption := '成功:环境变量已设置。请重启命令行工具验证。'
    else
      lblStatus.Caption := '错误:设置失败!';
  end;
end;
 
// 验证Java安装
procedure TForm2.btnVerifyClick(Sender: TObject);
begin
  //winexec(PAnsiChar(AnsiString('cmd.exe /c java -version')), sw_hide);
  WinExec('cmd.exe /k java -version', SW_SHOWNORMAL);
end;
 
procedure TForm2.FormCreate(Sender: TObject);
begin
  edtJdkPath.Text := 'X:\jdk-11';
end;
 
end.

免费评分

参与人数 5吾爱币 +8 热心值 +4 收起 理由
york09 + 1 我很赞同!
hrh123 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zxinyun + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Amiao713 + 1 鼓励转贴优秀软件安全工具和文档!
Tangas + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

superjason 发表于 2025-7-21 12:53
会delphi应该都是老程序员了
m_h 发表于 2025-7-21 13:00
wajika 发表于 2025-7-21 13:44
kenxy 发表于 2025-7-21 13:48
上学的时候就学过pascal,后来有了delphi
york09 发表于 2025-7-22 11:08
有没有大佬出个bat的
 楼主| 冥界3大法王 发表于 2025-7-22 19:31
本帖最后由 冥界3大法王 于 2025-7-22 19:34 编辑
york09 发表于 2025-7-22 11:08
有没有大佬出个bat的
让AI给你转吧,应该能用SET命令一行解决吧。
不过本人喜欢小葱豆腐==》一清二白型的,这样看着直观。

感觉 可以大胆扩充一下,譬如识别是否是管理员权限? 并支持更多的程序。。。一键式设置(python。。。。。省略10多种)
DerGeDer 发表于 2025-7-23 14:56
有意思,但这玩意儿不会经常变啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-7-27 08:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表