.Net으로 MSI 파일을 읽는 방법을 찾았습니다. 그들 중 일부는 Wix와 함께 제공되는 라이브러리를 사용합니다. Java를 사용하여 MSI 데이터를 읽는 방법이 있습니까? 테이블에 액세스하여 텍스트 값을 얻고 싶습니다.Java로 MSI 파일 읽기
답변
MSI 파일은 COM 구조화 된 저장 장치입니다. http://en.wikipedia.org/wiki/COM_Structured_Storage
몇 가지 옵션이 있습니다. 다음과 같은 방법으로 액세스 할 수 있습니다. http://poi.apache.org/poifs/index.html
네이티브 MSI API에 액세스하려면 JNI를 사용할 수 있습니다.
또는 vbscript와 같은 것을 사용할 수 있습니다. 스크립트는 stdout으로 원하는 결과를 덤프합니다. 그러면 java 응용 프로그램에서 캡처하고 파싱합니다.
.MSI는 기본적으로 데이터베이스입니다. Java의 JdbcOdbc 드라이버를 사용하여 MS Access .MDB 파일을 읽을 수 있으면 대신 .MSI를 열고 테이블을 읽는 데 동일한 코드를 사용할 수 있습니다.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String msiFileName= "d:/java/test.msi";
String connectString = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
connectString += msiFileName.trim() + ";DriverID=22;READONLY=true}";
Connection con = DriverManager.getConnection(connectString ,"","");
적어도 이론적으로. :)
불행히도 java.sql.SQLException이 발생합니다. [Microsoft] [ODBC Microsoft Access Driver] '(알 수 없음)'데이터베이스를 열 수 없습니다. 응용 프로그램이 인식 할 수있는 데이터베이스가 아닐 수도 있고 파일이 손상되었을 수도 있습니다. – Omar
아마도 자바 네이티브 액세스 독자 중 하나 (예 : jackcess)를 시도해보십시오. – jsight
이론 상으로는 효과가 있습니다. 문제는 아마도 MSI 자체 일 것입니다. 표준 Windows Installer MSI가 아닌 경우 실패 할 수 있습니다. – Geno
자바를 통해 Windows Installer API을 사용할 수 있습니까?
API는 MSI 파일을 조작하는 유일한 방법입니다. .NET 또는 WiX를 사용하는 경우 이러한 함수 또는 함수를 호출하는 함수를 사용합니다.
MSI의 이진 파일 형식은 문서화되지 않았으며 버전간에 변경 될 수 있으므로 이진 형식을 직접 읽거나 쓰려고하면 머리가 아플 수 있습니다.
- 1. 수동으로 저장하는 동안 java로 파일 읽기
- 2. vbscript로 MST 파일 읽기
- 3. msi 파일 내에서 msi 파일에 액세스
- 4. Java로 FoxPro 2.6 데이터 읽기
- 5. Java로 텍스트 파일에서 히브리어 읽기
- 6. MSI 파일 푸시
- 7. Java에서 wav 파일 읽기
- 8. Java로 파일 업로드
- 9. Java로 파일 쓰기
- 10. Java로 포틀릿의 스트림 파일
- 11. Java로 AutoCAD 파일 생성?
- 12. WiX : 여러 개의 MSI 파일?
- 13. MSI 패치 - 파일 생성 날짜
- 14. 압축되지 않은 MSI 파일 압축
- 15. JFileChooser를 사용하여 Java로 프로그램 읽기/쓰기
- 16. Java로 Google 캘린더 서비스에서 XML 응답 읽기
- 17. java로 사운드 카드에서 오디오 출력 읽기
- 18. 파일 읽기/쓰기 빠른 파일 읽기/쓰기
- 19. 읽기 파일
- 20. Windows에서 Java로 동시 파일 쓰기
- 21. Android에서 java로 mp3 파일 다운로드
- 22. 파일 공유가없는 원격 파일 읽기
- 23. 파일 읽기 : feof() 이진 파일
- 24. 읽기 이진 파일 파일 형식
- 25. exe 또는 msi 파일에 hta 파일 배포
- 26. MSI 설치 프로그램 파일/폴더 사용 권한
- 27. MSI 캐비닛에서 파일 순서를 결정하는 방법은 무엇입니까?
- 28. 크리스탈 XI R2 서버 SP5 ... msi 파일?
- 29. MSI 패키지의 파일 시스템 유형 확인
- 30. .exe 파일에서 설치 파일 (.msi)을 만듭니다.
JDIC 프로젝트에서이 packager.jar 파일을 발견했습니다. WinMSIWrapper.dll에 대한 JNI 래퍼가 있습니다. 그러나, 나는 vbscript 접근 방식으로 갔다. – Omar