欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
用java實(shí)現修改系統的環(huán)境變量并使其不需重啟就生效

用java實(shí)現修改系統的環(huán)境變量并使其不需重啟就生效

文章分類(lèi):Java編程
java 不能直接修改windows系統的環(huán)境變量,需要借助JNI轉為C++的接口,以調用windows系統的注冊表。(可以理解c++畢竟是微軟推出的開(kāi)發(fā)語(yǔ)言,OS源代碼并未開(kāi)放);目前,有開(kāi)源項目實(shí)現了這個(gè)轉換過(guò)程,使用版本:registry-3.1.3.zip;將壓縮包bin目錄中的jar包(registry.jar)導到工程中,然后在把相同目錄下的dll(ICE_JNIRegistry.dll)放到j(luò )dk的bin目錄下。

(ps:如其說(shuō)修改環(huán)境變量,不如說(shuō)修改注冊表更準確些,因為是通過(guò)修改注冊表來(lái)實(shí)現修改環(huán)境變量的;“環(huán)境變量”的鍵值所在位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment )

Windows Registry API Native Interface下載地址 http://www.trustice.com/java/jnireg/index.shtml 下 registry-3.1.3.zip(包含源代碼)。解開(kāi) registry-3.1.3.zip,在 bin 目錄中可以看到兩個(gè)文件 ICE_JNIRegistry.dll 和registry.jar,動(dòng)態(tài)庫就是本地代碼實(shí)現。

修改環(huán)境變量path 或 classpath ,代碼如下:

package com.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import com.ice.jni.registry.RegStringValue;
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryKey;
public class RegistryTest {
public static void main(String[] str)
{
  try {
   RegistryKey openPath1 = Registry.HKEY_LOCAL_MACHINE
     .openSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment");
   String path_Old = openPath1.getStringValue("Path");    //獲取原Path鍵值

   RegistryKey openPath2 = Registry.HKEY_LOCAL_MACHINE
     .openSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager");

   RegistryKey subKey = openPath2.createSubKey("Environment", "");

  //定義Path所在目錄的句柄(相當于在Session Manager路徑下面,新建Environment文件夾,如果存在不改變已有的值。)
//   String path_New = path_Old + ";" + "D:\\myTinoProject\\bingy";
   String path_New = path_Old + "bin;";
   subKey.setValue(new RegStringValue(subKey, "Path", path_New)); //修改Path鍵值
   subKey.closeKey();
  
   //查看進(jìn)程的方法
   String[] cmd = { "D:\\dfqd\\workspace\\tasklist" };
   Process proc = Runtime.getRuntime().exec(cmd);
   BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
   String string_Temp = in.readLine();
   while (string_Temp != null) {
       System.out.println(string_Temp);
       string_Temp = in.readLine();
   }
   //刪除explorer.exe進(jìn)程
   Process proc2 = Runtime.getRuntime().exec("D:\\dfqd\\workspace\\taskkill /F /IM explorer.exe");
   Thread.sleep(500);
   //重啟explorer.exe進(jìn)程
   Process proc3 = Runtime.getRuntime().exec("explorer.exe");
   System.out.println("=====SUCCESS=====");
  } catch (Exception e) {
   e.printStackTrace();
  }
}
}

注:如有下面的錯誤提示,句柄(subKey)未定義正確。

com.ice.jni.registry.RegistryException: Registry API Error 5, 'access denied' - 'RegSetValueEx()'

說(shuō)明:
(1)代碼后面的刪除explorer.exe進(jìn)程和重啟explorer.exe進(jìn)程就是為讓設置好path后在不重啟電腦的情況下生效,具體驗證:cmd-->javac有效。
(2)中間睡0.5秒的意思是現在的電腦太牛了,還沒(méi)刪的時(shí)候就啟了。
(3)代碼之后會(huì )做詳細的封裝,封裝好后再貼上來(lái)分享。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
利用JAVA向注冊表里寫(xiě)信息
使用java命令出現“Error: A JNI error has occurred, please check your installation and try again”的一種解決方案
為java應用程序設置開(kāi)機啟動(dòng)項、 修改注冊表
Android JNI(實(shí)現自己的JNI_OnLoad函數)
How to Package JNI Shared Library into Jar File | Dynamsoft Developers
Android MediaScanner
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久