2016-09-20 1 views
0

IE11에서 테스트를 실행하고 있습니다. 그것을하기 위해 나는 레지스트리를 약간 변경했다. 'FeatureControl'폴더에 새 키 'FEATURE_BFCACHE'가 생성되었습니다. 그런 다음 값 '0'으로 'iexplore.exe'라는 'FEATURE_BFCACHE'에 새로운 'DWord'값을 추가했습니다. 나는 그것을 수동으로했다. 그러나 이제는 내 프로그램에서 해보려합니다. 나는 이것을 썼지 만 효과가 없다.java를 통해 레지스트리에 새 키 값을 추가하는 방법은 무엇입니까?

String[] c = new String[]{"reg", "add", "\"HKLM\\Software\\Wow6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BFCACHE\"", 
       "/v", "\"iexplore.exe\"", "/t", "REG_DWORD", d", "0", "/f"}; 
try { 
    new ProcessBuilder(c).start(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

제대로 명령 줄 reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE1" /t REG_DWORD /v iexplore.exe /d 0 /f에서 작동하지만 어쩌면 내가 관리자로 실행 필요가이 명령을 실행하는 자바 코드

System.out.println("Creating new folder"); 
String[] c = new String[]{"reg", "add", "\"HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BFCACHE1\"", 
    "/t", "REG_DWORD", "/v", "iexplore.exe", "/d", "0", "/f"}; 
try { 
    new ProcessBuilder(c).start(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

에서 작동하지 않는 I 라인이 일부 변경 후?

답변

0

cmd promt에서 명령을 실행하거나 단일 문자열로 전달할 때 따옴표 문자열 만 필요하면 ProcessBuilder에서 문자열 배열을 사용할 때 따옴표 문자가 호출 된 프로그램에 리터럴 따옴표 문자로 전달됩니다.

시도 :

String[] c = new String[]{"reg", "add", "HKLM\\Software\\Wow6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BFCACHE", 
      "/v", "iexplore.exe", "/t", "REG_DWORD", "/d", "0", "/f"}; 
+0

작동 관리자로 내가 IntelliJ에 아이디어를 열면 내가 명령 줄 – Viktoriia

+0

에 쓴 경우도 작동하지 않습니다 명령에'/'에'/'가 누락 된 것 같습니다. 그 외의 경우, 실행 된 명령의 stdout/stderr (예 : [inheritIO()'] (http://docs.oracle.com/javase/8/docs/api/java/lang/ProcessBuilder)를 인쇄하십시오. html # inheritIO--) 프로세스 빌더에서) 아마도 어쩌면 단서가 있습니다. 어쩌면 프로그램이이 변경을 수행 할 수있는 충분한 권한으로 실행되고 있지 않은 것일 수 있습니까? – mata

+0

이 줄은'reg add "HKLM \ SOFTWARE \ WOW6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureContent \ FEATURE_BFCACHE1"/ t REG_DWORD/v iexplore.exe/d 0/f 명령 줄에서 작동합니다. 하지만이 줄은 java 코드가 작동하지 않습니다. – Viktoriia

0

우리가 관리자 권한으로 명령 줄을 실행할 필요가 레지스트리를 수정하는, 그래서

관련 문제