**jvms init 初始化后,会导致%%引用的变量全部丢失**。原因是通过调用cmd使用setx进行相关设置导致的。 通过开源代码可以看到官方是**通过os.Getenv("PATH")获取注册表path原始的值,这会导致获取到的值当中%%引用的值会全部还原为真实的值**。 <img width="1253" height="608" alt="Image" src="https://github.com/user-attachments/assets/440a84ad-4576-4b21-aa98-94e4df2883de" /> 解决办法是**使用Windows注册表API的方式替换原来的setx命令**: <img width="1388" height="1032" alt="Image" src="https://github.com/user-attachments/assets/abfed611-e13c-49a4-879d-7c34a717fe62" /> <img width="1346" height="1179" alt="Image" src="https://github.com/user-attachments/assets/380fe351-1772-4cc7-9082-72e2b08e3350" /> <img width="1038" height="1039" alt="Image" src="https://github.com/user-attachments/assets/10d01f5e-26f5-48a0-9c97-3861ab42dfd9" /> **修复后的结果**: <img width="693" height="175" alt="Image" src="https://github.com/user-attachments/assets/32e052e7-732a-439b-9584-328f1082b90e" /> <img width="881" height="150" alt="Image" src="https://github.com/user-attachments/assets/910ff19b-6642-4c64-b74a-e963f4ce12f5" /> <img width="617" height="657" alt="Image" src="https://github.com/user-attachments/assets/60016677-2e56-4ddd-98b9-a57e3079096d" /> <img width="1136" height="561" alt="Image" src="https://github.com/user-attachments/assets/f6f695d8-d961-4b36-9c7d-3fd7c44370f8" /> **完整的源代码**,我没办法上传代码,所以附上图片:   
jvms init 初始化后,会导致%%引用的变量全部丢失。原因是通过调用cmd使用setx进行相关设置导致的。

通过开源代码可以看到官方是通过os.Getenv("PATH")获取注册表path原始的值,这会导致获取到的值当中%%引用的值会全部还原为真实的值。
解决办法是使用Windows注册表API的方式替换原来的setx命令:
修复后的结果:




完整的源代码,我没办法上传代码,所以附上图片:


