2012-08-27 5 views
0

설치 한 jre없이 실행 가능한 앱이 필요합니다. 또한 rxtx를 사용하며 32 비트 및 64 비트 시스템에 여러 가지 jar와 dll이 있습니다. 64 비트 시스템을 지원하는 Windows 용 Java AOT 컴파일러가 있습니까? 내가 엑셀 ​​시오르 제트 (Excelsior Jet)에 약간의 알파 버전이 있지만, 최종 엑서사이즈를 할 수 있는지 알아낼 수 없다. 당신은 J9 볼 수 있었다64 비트 시스템 용 Java AOT 컴파일러

+0

Java * 설치 * JRE는 JRE를 묶어서 [launch4j] (http://launch4j.sourceforge.net/)와 같은 것을 사용하여 쉽게 시작할 수 있습니다. JRE가 필요없는 진정한 AOT 컴파일은 어렵고 드물다. –

+0

큰 실행 파일도 허용되지 않습니다. 그리고 전체 jre를 묶을 때 100 Mb가 넘습니다. – Natalia

+0

그런 다음 JRE를 .zip 파일로 제공하고 설치 프로세스 중에 압축을 풉니 다. 문제는 * 번들 된 JRE를 제공하는 대부분의 시간이 더 쉬운 해결책이 될 것이라는 것입니다. –

답변

1

나는 래퍼 (예 : Launch4j), JRE는 번들을 exe 인 자바의 콤보와 설치 빌더와 함께 갈 것입니다에 따라 64 버전에 존재한다 예 : InnoSetup). 완전한 JRE를 번들하는 것은 설치 프로그램에 약 20MB 만 추가합니다 (JRE에서 필요없는 것들을 제거하여 몇 MB를 줄일 수 있습니다).

저는 위의 조합을 사용하여 하청 업체 (일반적으로 완벽한 컴퓨터 더미)에 (회사 전용) 응용 프로그램을 제공하고 있습니다. 설치 프로그램에서 모든 대상 시스템 사용자 정의를 관리 할 수 ​​있습니다 (예 : 나중에 업데이트 할 수 있도록 설치된 파일에 대한 적절한 액세스 권한 설정).

크기를 줄이기 위해 특수화 된 64 비트 버전을 제공하지 않을 수도 있습니다. programm가 32 비트 VM에서 정상적으로 실행되면 64 비트 (JRE) 버전의 사용자에 대한 추가 값이 없습니다. 성능의 차이는 대부분의 경우 무시할 수 있으며 예외적으로 큰 힙 (1GB 이상)을 사용하지 않으면 여분의 64 비트 JRE를 제공하는 데 시간을 낭비하게됩니다.

+0

) 사용하지 않는 것들을 "면도"할 수 있습니까? rxtx가 다른 플랫폼에서 다른 항아리를 사용하기 때문에 64 비트 jre가 필요하다고 생각합니다. – Natalia

+0

"Shave off"= 번들로 묶을 JRE 설치에서 물건을 삭제하십시오. 예를 들어 묶음에 필요하지 않은 bin 디렉토리의 내용이있을 수 있습니다 (필요하지 않은 것을 찾으려면 약간의 추측과 평가가 필요합니다). 후보자는 bin, plugins 등에서 java/javaw가 아닌 ​​다른 exe가 될 것입니다.) rxtx의 64 비트 버전을 설치해야하는지 테스트하십시오 (32 비트 VM을 사용한다면 32 비트 dll은 가장 많이 사용됩니다). 마지막으로, 두 개의 JRE는 설치자의 압축으로 인해 두 배가 될 수도 있습니다 (InnoSetup의 lzma/ultra64를 사용해보십시오). – Durandal

+0

또한 설치 관리자가 두 명이고 하나는 32 명이고 다른 하나는 설치자입니다. 64 비트 버전 용. 사용자가 얼마나 스마트한지에 달려 있습니다. n이 될 것으로 예상된다. – Durandal

0

, 그것은 AOT를 지원하고 (IBM