Launch4j와 JRE를 번들링하는 방법은 무엇입니까?


80

내 컴퓨터에 Launch4J가 있으며 훌륭한 프로그램입니다. 내가 관심있는 기능 중 하나는 일반 .EXE 파일에 JRE를 번들링하는 기능입니다. 그러나이 작업을 수행하는 방법을 설명하는 문서를 찾을 수 없습니다.

JRE를 EXE와 어떻게 번들합니까? 또한 어디에서 실행할 수있는 소형 휴대용 JRE를 구할 수 있습니까? Oracle의 다운로드 링크는 설치 프로그램 패키지 용입니다.


5
Launch4j를 사용하면 JRE exe 와 함께 번들링 할 수 있습니다 . exe에 JRE를 포함하는 데 사용할 수 없습니다.
THelper

그게 무슨 의미일까요 ...
DKIT 2011

답변:


82

몇 번의 시도 후 마침내 내 응용 프로그램에서 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 폴더에서 복사하여 붙여 넣는 것입니다.


4
그것은 저를 많이 도왔습니다! 문서는 이것에 대해 너무 명확하지 않습니다 ... 매력처럼 작동합니다 :-)
Konrad 'ktoso'Malawski

안녕하세요이 경로는 <path> ../ jre </ path>입니다. C : //..java 폴더에있는 기존 경로이거나 다운로드 된 새 Java JRE 설치 프로그램입니다.
RajaReddy PolamReddy

@RajaReddyPolamReddy는 .exe 파일에서 응용 프로그램 내에서 jre가있는 폴더까지의 상대 경로입니다
Francisco Puga

9
이 질문은 launch4j 를 사용 하여 EXE 에서 JRE를 번들링하는 방법을 물었습니다 . 이 답변은 launch4j에 EXE 와 함께 번들로 제공 되었지만 내부가 아닌 특정 JRE를 사용하도록 지시하는 방법을 보여줍니다 . 이것은 launch4j로 할 수있는 최선 인 것 같습니다. (아래의 다른 답변은 EXE와 JRE를 모두 설치하는 설치 프로그램을 만드는 한 가지 방법을 보여줍니다. 그러나 JRE는 EXE에 없습니다.)
Enwired

1
그리고 JRE와 함께 제공되지 않는 JDK11은 어떻습니까?
Panagiss

12

나는 다음을 수행했으며 Ver Launch4j 3.11을 사용하여 나를 위해 일했습니다.

  1. 내 응용 프로그램에 대한 새 폴더를 만들었습니다 (예 : MyApp).
  2. java 프로젝트 dist 폴더의 jar 파일을 lib 폴더와 함께 MyApp으로 복사했습니다.
  3. 내 응용 프로그램 폴더 MyApp에 jre라는 폴더를 만들었으므로 이제 MyApp 폴더에 다음이 포함됩니다.
    • MyApp.jar
    • lib <-내 자바 앱에 필요한 라이브러리가 있습니다.
    • jre
  4. bin 및 lib 폴더를 java jre 폴더 (C : \ Program Files (x86) \ Java \ jre7)에서 MyApp \ jre로 복사했습니다.
  5. 모든 필수 옵션을 설정 한 Launch4j에서 번들 된 JRE 경로를 "jre"로 설정합니다.

    Launch4j JRE 옵션

  6. 검색 옵션에서 "비공개 JDK 런타임 만 사용"이 선택되어 있는지 확인하십시오.

6

당신과 같은 문제입니다. 이제 걱정하지 마세요. 그 모든 것은 미래의 솔루션을 해결하기 위해 최대 깊이로 해결됩니다. 사용자가 Java를 설치할 필요없이 jar 용 JRE 를 번들로 묶을 수있는 방법에 대한 솔루션 입니다. 자바 애플리케이션이 실행됩니다.

  1. 복사 libbin귀하의 폴더 JRE의 프로젝트의 dist 폴더에 폴더

jar에서 exe로 변환

  1. launch4j를 열고 다음 설정을 입력하십시오. 여기에 이미지 설명 입력

트릭은 javaw.exe를 포함하는 전체 경로를 제공해야한다는 것입니다.

즐겨!!!!


1
... 삭제 파일 수 없습니다 : 깨끗하고 빌드하는 동안이 오류를 만드는 폴더의 dist에있는 모든 파일을 넣어
ParisaN

0

나는 방금 이것을했다. 위에서는 jre를 번들링하는 방법을 명확하게 설명합니다.

여기서 저는 제가 힘들었던 경험을 공유합니다. launch4j로 래퍼 exe를 생성 한 후 설치 프로그램 exe를 생성하려면 launch4j 및 jre의 파일 경로에주의하십시오. 이것이 내 문제를 해결하는 데 사용한 내 경로입니다.

launch4j, bin / jre, resources / bin / jre.

launch4j, bin 및 리소스는 동일한 수준에 있습니다.



-2

jre는 일반적으로 SDK 폴더에서 찾을 수 있습니다. 예, 온라인 링크는 설치 프로그램이지만 일단 설치되면 JRE가 이제 로컬 디스크에 있습니다. 광산은

${jdk folder}\jre

JRE에서 필요하지 않은 부분은 원하는 경우 수동으로 제거 할 수 있습니다 (온라인에서 사용할 수있는 항목을 잘 모르겠습니다).


EXE에 어떻게 번들합니까? 사용자가 Java를 설치했는지 걱정할 필요가 없도록 항아리에있는 모든 것을 패키지하려고합니다. 나는 그들이 자바를 다운로드하는 것이 아마도 가장 좋은 생각이라는 것을 알고있다. 그러나 모든 배포 옵션을 실험하고 싶습니다.
CodeBunny 2011-08-17

3
@CodeBunny이 혼자 Launch4j 불가능하지만, 누군가가 또 다른 좋은 해결책을 발견 : mark.koli.ch/...
ZERO3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.