설치된 소프트웨어 및 Java 버전 목록을 어떻게 얻을 수 있습니까?컴퓨터에서 Java를 사용하여 설치된 소프트웨어 목록 얻기
4
A
답변
1
특정 소프트웨어의 존재 여부를 확인하는 another question on StackOverflow이 있습니다.
당신은 소프트웨어의 이름이 파일 경로의 끝에 무엇이든지 가지고, 처음에
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
있는 모든 filepaths의 목록을 만들 수 있습니다.
0
다음 코드가 도움이 될 것이라고 생각합니다. 나는 변화가 생기면 내 코드를 편집 할 수 있도록 java에 익숙하다.
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class getInstalledAppList {
private static final String REGQUERY_UTIL = "reg query ";
private static final String REGSTR_TOKEN = "REG_SZ";
static String s = REGQUERY_UTIL + "HKEY_LOCAL_MACHINE\\Software"
+ "\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
public static String getCurrentUserPersonalFolderPath() {
try {
Process process = Runtime.getRuntime().exec(s);
StreamReader reader = new StreamReader(process.getInputStream());
reader.start();
process.waitFor();
reader.join();
String result = reader.getResult();
int p = result.indexOf(REGSTR_TOKEN);
if (p == -1)
return null;
return result.substring(p + REGSTR_TOKEN.length()).trim();
}
catch (IOException | InterruptedException e) {
return null;
}
}
static class StreamReader extends Thread {
private final InputStream is;
private final StringWriter sw;
StreamReader(InputStream is) {
this.is = is;
sw = new StringWriter();
}
@Override
public void run() {
try {
int c;
while ((c = is.read()) != -1)
sw.write(c);
}
catch (IOException e) { e.printStackTrace(); }
}
String getResult() {
return sw.toString();
}
}
public static void main(String s[]) {
getDisplayNameDword(getCurrentUserPersonalFolderPath() );
}
private static void getDisplayNameDword(String str){
Set<String> set = new HashSet<>();
String [] array = new String[500];
array = str.split("\n");
for(String i : array){
set.add(getName(i.trim()));
}
Iterator i = set.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
private static String getName(String s){
Process process = null;
try {
// Run reg query, then read output with StreamReader (internal class)
process = Runtime.getRuntime().exec("reg query " +
'"'+ s + "\" /v " + "DisplayName");
StreamReader reader = new StreamReader(process.getInputStream());
reader.start();
process.waitFor();
reader.join();
// Parse out the value
String[] parsed = reader.getResult().split(REGSTR_TOKEN);
if (parsed.length > 1) {
return (parsed[parsed.length-1]).trim();
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
또는 psinfo.exe를 사용하여 Windows에 설치된 응용 프로그램 목록을 가져 오십시오.
관련 문제
- 1. 런타임에 설치된 OSGI 번들 목록 얻기
- 2. VBscript를 사용하여 컴퓨터에서 정보 얻기
- 3. Java를 사용하여 Windows에 설치된 프로그램을 확인 하시겠습니까?
- 4. Java를 사용하여 다른 컴퓨터에서 파일 검색
- 5. java를 사용하여 클라이언트 컴퓨터의 IP 주소 얻기
- 6. 웹 페이지에서 설치된 소프트웨어 받기
- 7. Java를 사용하여 로컬에 설치된 neo4j 서버에 연결하는 방법
- 8. Eclipse RCP 응용 프로그램에 설치된 기능 목록 얻기
- 9. 사전 설치된 소프트웨어 및 GUI가 설치된 원격 서버
- 10. 설치된 모듈 목록 (Python)
- 11. 설치된 앱 목록 표시
- 12. wmi를 사용하여 원격 호스트에서 설치된 소프트웨어 가져 오기
- 13. 얻기 목록
- 14. Java를 사용하여 원격 컴퓨터에서 Linux 명령을 어떻게 실행합니까?
- 15. Eclipse에서 설치된 소프트웨어/플러그인이 작동을 멈췄습니다.
- 16. 네트워크에있는 컴퓨터에서 컴퓨터 설명 얻기
- 17. android : 설치된 응용 프로그램 목록
- 18. Windows 서버 2008 R2에 설치된 VBScript 목록
- 19. 설치된 DBMS 목록 가져 오기
- 20. 톰캣 서버의 컨텍스트 목록 얻기
- 21. Mac App Store를 통해 설치된 소프트웨어 목록을 얻으려면 어떻게해야합니까?
- 22. foreach를 사용하여 목록 읽기 다른 결과 얻기
- 23. 설치된 프로필 목록 가져 오기
- 24. iphone에 설치된 앱 목록 찾기
- 25. Java를 통해 Windows 파일 연결 얻기
- 26. WP7의 지명 목록 얻기
- 27. 자홍색 점포 목록 얻기
- 28. 유튜브 사용자 목록 얻기
- 29. 경기장 목록 정보 얻기
- 30. LDAP에서 전체 사용자 목록 얻기
OS 의존적 인 것은 아니기 때문에 Windows에서만 작동하도록 만들 수 있습니다. 하지만 내가 리눅스에서도 잘 작동하려면 어떻게해야 할까? 파일 위치를 파싱하거나 특정 디렉토리에서 소프트웨어 이름을 검색 할 수 있습니까? 어떤 도움이라도 대단히 감사 할 것입니다. – Spaniard89
Linux의 경우 : Java에서 Linux 셸 명령을 실행하려면 [예제] (http://linuxprogram.wordpress.com/2006/10/22/how-to-excute-a-linux-shell-command)를 참조하십시오. -in-java /) 실행 대상 : [이 부분을 참조하십시오 (http://linuxprogram.wordpress.com/2006/10/22/how-to-excute-a-linux-shell-command-in -java /) – Antimony
매우 유감 스럽지만이 문제는 어떻게 게시됩니까? – Spaniard89