내 컴퓨터에 Launch4J가 있으며 훌륭한 프로그램입니다. 내가 관심있는 기능 중 하나는 일반 .EXE 파일에 JRE를 번들링하는 기능입니다. 그러나이 작업을 수행하는 방법을 설명하는 문서를 찾을 수 없습니다.
JRE를 EXE와 어떻게 번들합니까? 또한 어디에서 실행할 수있는 소형 휴대용 JRE를 구할 수 있습니까? Oracle의 다운로드 링크는 설치 프로그램 패키지 용입니다.
내 컴퓨터에 Launch4J가 있으며 훌륭한 프로그램입니다. 내가 관심있는 기능 중 하나는 일반 .EXE 파일에 JRE를 번들링하는 기능입니다. 그러나이 작업을 수행하는 방법을 설명하는 문서를 찾을 수 없습니다.
JRE를 EXE와 어떻게 번들합니까? 또한 어디에서 실행할 수있는 소형 휴대용 JRE를 구할 수 있습니까? Oracle의 다운로드 링크는 설치 프로그램 패키지 용입니다.
답변:
몇 번의 시도 후 마침내 내 응용 프로그램에서 jre를 번들로 묶는 해결 방법을 얻습니다.
내 앱을 다음 폴더가 포함 된 zip 파일로 패키징합니다.
containerFolder
|- jre
|-bin (in bin there is java.exe)
|-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)
launch4j의 xml 파일에서 다음과 같이 jre를 구성합니다.
<jre>
<path>../jre</path>
<opt>-DgvSIG.confDir=../cfg</opt>
</jre>
여기서 트릭은 경로가 java.exe 파일이 아니라는 것입니다. jre의 경로는 .exe의 위치에 상대적이며 java.exe 파일 앞의 한 폴더를 가리켜 야합니다.
내가 사용하는 jre 폴더는 Windows 시스템에 설치된 jre 폴더에서 복사하여 붙여 넣는 것입니다.
나는 다음을 수행했으며 Ver Launch4j 3.11을 사용하여 나를 위해 일했습니다.
모든 필수 옵션을 설정 한 Launch4j에서 번들 된 JRE 경로를 "jre"로 설정합니다.
Launch4J를 사용하여 Java 애플리케이션을 특정 JRE와 번들링하는 작업 예제는 https://github.com/vZome/vzome/blob/master/desktop/platform/windows/README.md 에서 찾을 수 있습니다 . 이 특정 분포하도록 구성되어 필요 vZome를 사용하는 번들 JRE를 어떤 JRE가 대상 플랫폼에서 찾을 것이 아니라.
도움이 되었기를 바랍니다.
jre는 일반적으로 SDK 폴더에서 찾을 수 있습니다. 예, 온라인 링크는 설치 프로그램이지만 일단 설치되면 JRE가 이제 로컬 디스크에 있습니다. 광산은
${jdk folder}\jre
JRE에서 필요하지 않은 부분은 원하는 경우 수동으로 제거 할 수 있습니다 (온라인에서 사용할 수있는 항목을 잘 모르겠습니다).