2009-09-14 3 views
0

파일 시스템을 검색하지 않고 설치된 응용 프로그램의 위치를 ​​가져 오는 방법이 있습니까?Java/Windows 응용 프로그램 위치 가져 오기

편집 : 질문을 명확하게하지 않으려 고 미안하지만, 내가하려고하는 것은 파이어 폭스가 자바 애플리케이션 내에서 설치되는 위치를 파악하는 것과 같다. 확장 프로그램 설치를 시작하고 싶습니다.

+0

응용 프로그램의 "위치"가 의미하는 바에 달려 있습니다. 이것은 JVM의 경로, JVM 인스턴스의 cwd, .class 파일/JAR의 위치 또는 몇 가지 다른 것들 일 수 있습니다. os x "open -a Firefox "에 대한 – Mike

답변

3

편집 : Firefox에는 HKLM \ Software \ Mozilla \ Mozilla Firefox \\ Main \ InstallDirectory 키에 레지스트리 키가 있습니다. 버전 번호를 얻을 수있는 것과 동일한 HKLM \ Software \ Mozilla 경로에 CurrentVersion 키가 있습니다.

0

리눅스에서 당신은 파이어 폭스이 는/usr/빈/파이어 폭스 같은 것을 반환하는의 시스템 프로그램 등 를 호출 Runtime.exec의()를 사용할 수 있습니다. 이것은 Windows에서는 작동하지 않으며 불행하게도 UNIX 기반 임에도 불구하고 OS X에서도 작동하지 않습니다.

+0

이 작동합니다. –

0

Windows에서이 작업을 수행하는 유일한 방법은 레지스트리를 통해 읽는 것입니다. Jeff Storey의 게시물에 필요한 reg 키가 있습니다. Java에서이 작업을 수행 할 때, 원래의 응답은 JNI를 사용하지 않고는 할 수 없었습니다.

그러나 나는 약간의 인터넷 검색을했고, 그것은 일반적으로 사용할 수없는 환경 설정 API의 일 구현의 일부를 액세스하는 것을 포함/C b를 접근 방식은 비트 소설 this library

을 발견했다. 이것은 분명히 다른 JVM과 호환되지 않을 것이고 Sun의 JRE가 발전함에 따라 깨질 수 있습니다. 그러나 ... 아마도 ... 적어도 2 년 이상은 유용 할 것이고 아마도 더 길 수도 있습니다. JNI를 직접 작성하는 것보다 훨씬 쉽습니다 ...

관련 문제