developer tip

Windows 실행 파일에 JRE를 포함 하시겠습니까?

optionbox 2020. 12. 2. 08:31
반응형

Windows 실행 파일에 JRE를 포함 하시겠습니까?


Java 응용 프로그램을 배포한다고 가정합니다.

단일 실행 파일로 배포한다고 가정합니다. 단일 파일 (일부 Ant 해킹 포함)에서 응용 프로그램과 모든 외부 종속성을 모두 포함하는 .jar을 쉽게 빌드 할 수 있습니다.

이제 Windows에서 .exe 파일로 배포한다고 가정합니다. 좋은 도구 (예 : Launch4j 등)를 고려하면 간단합니다.

그러나 이제 올바른 JRE (또는 해당 문제에 대한 JRE)가 설치된 최종 사용자에게 의존하고 싶지 않다고 가정 해보십시오. 내 앱과 함께 JRE를 배포하고 싶습니다. 내 앱은이 JRE에서 실행되어야합니다. Windows 설치 프로그램 실행 파일을 만들고 필요한 모든 JRE 파일이 포함 된 폴더를 포함하는 것은 쉽습니다. 하지만 단일 파일 앱이 아닌 설치 프로그램을 배포하고 있습니다.

응용 프로그램 JRE를 모두 응용 프로그램 시작 관리자 역할을하는 (설치 프로그램이 아닌) .exe 파일 에 포함하는 방법이 있습니까?


AvianProGuard 툴킷을 사용해보십시오 . Avian은 앱에 가벼운 가상 머신을 포함 할 수 있습니다. Linux, MacOS, Windows 및 iOS가 지원됩니다. ProGuard를 사용하면 큰 jar 파일을 축소하여 포함 할 준비를 할 수 있습니다.


이를 수행하는 새로운 도구가 있습니다 : Packr
https://github.com/libgdx/packr


몇 가지 옵션이 있으며 상업적으로 매우 좋습니다.

http://www.excelsior-usa.com/jet.html

두 가지 주요 오픈 소스 옵션 GCJ 및 VMKit이 있습니다.

http://gcc.gnu.org/java/http://vmkit.llvm.org/

다른 더 긴 경로에는 IKVM.NET이 포함됩니다.

http://www.ikvm.net/

EXE로 정적으로 컴파일 할 수있는 .NET JVM입니다.


응용 프로그램과 JRE를 모두 응용 프로그램 시작 관리자 역할을하는 (설치 프로그램이 아닌) .exe 파일에 포함하는 방법이 있습니까?

상용 도구가 괜찮다면 install4j 는이 문제를 매우 원활하게 해결합니다 ( "기능"페이지 참조 ). 응용 프로그램 시작 관리자와 설치 프로그램을 모두 생성 할 수 있습니다 .

나는 너무 많이 반복하고 싶지 않으므로 예를 들어 내가 연결 한 이전 답변을 확인 하십시오 (설치 관리자로서, 여기에서는 큰 차이가 없습니다).

요약 / 요약 : install4j는 사전 설치된 JRE (또는 기타 특정 라이브러리)에 절대적으로 의존 하지 않는 네이티브 .exe 실행기를 만들 수 있으며 JRE를 번들링 (및 감지)하기위한 유연한 옵션을 제공합니다.


Netbeans를 사용하면 Java SE 프로젝트를 기본 애플리케이션 설치 프로그램에 패키징하여 JRE를 포함 할 수 있습니다. 여기 있습니다 : https://netbeans.org/kb/docs/java/native_pkg.html :)


또 다른 예 ... Java 번들 (JRE) 및 7zip SFX로 Java 앱 실행! ... (Java 앱을 실행 파일로 변환)


나는 내가이 파티에 조금 늦었다는 것을 알고 있지만, ej-technologies (그들의 물건을 좋아함)는 exe4j재미있는 사업이 필요하지 않고 OP가 원하는대로 정확히 수행 할 새로운 솔루션을 가지고있는 것처럼 보입니다 .

http://www.ej-technologies.com/products/exe4j/overview.html

OpenSource 프로젝트에서 작업하는 경우 무료 라이선스를 제공합니다 (단지 연락하면됩니다). 상업용 프로젝트라면 라이센스가 필요합니다 ...하지만 라이센스 비용은 미화 69 달러에 저렴하고 가치가 있습니다.

웹 사이트에서 :

If you want your own process name instead of java.exe in the task manager
and a user friendly task-bar grouping, exe4j does the job for you.

exe4j helps you with starting your Java applications in a safe way, displaying
native splash screens, detecting or distributing suitable JREs and JDKs,
startup error handling and much more.

JSmooth는 문서에 따라이를 수행 할 수 있습니다. 임베디드 JRE없이 시도해 보았지만 매우 만족했습니다. ant로 스크립트 가능하며 Linux에서 빌드합니다.

http://jsmooth.sourceforge.net/features.php


: 당신은 한 번 봐 걸릴 수 있습니다 http://ulibgcj.sourceforge.net/uswt.html를 그것은 사용하여 빌드 GUI로 쉽게 마이크로 SWT 라이브러리가 SWT를 하고 한 번 봐 가지고 이클립스 GCJ 빌더


Install4j는 이러한 목적의 꼬임에 대한 훌륭한 도구입니다. 또한 JSmooth와 함께 jres를 번들링하려고 시도했지만 할 수 없었지만 JSmooth 또는 launch4j-all을 확인할 수 있습니다.


BoxedApp Packer보다 Engima Projector x86 / x64가 더 나은 것을 발견했습니다.

응용 프로그램 myapp.jar을 launcher \ jre \ bin \에 복사하는 것보다 packr로 soft miminizejre를 얻는 경우

설치된 jre 예제 C : \ Program Files \ Files \ Java \ 1.8.0_xxx \ bin \ javaw.exe에서 launcher \ jre \ bin \으로 복사합니다.

Engima Protector 입력 열기-> launcher \ jre \ bin \에서 javaw.exe

높은 압축을 원하면 옵션으로 이동하고 기타 찾기-> 명령 줄 "-jar myapp.jar"

그리고 보호를 클릭하고 전체 dll과 jar를 exe로 기다립니다.

임베디드 javaw_protected.exe에 중요한 파일 예제 자산이 포함되어 있는지 확인해야하는 것보다 많은 라이브러리 예제 lwjgl 또는 JavaFX를 가져 왔더라도 걱정할 필요가 없으므로 myapp.jar이 Eclipse에서 "필요한 라이브러리를 생성 된 JAR에 패키지"로 생성해야합니다. .

그러나 BoxedApp Packer도 동일합니다. BoxedApp Packer는 Engima Protector보다 약간 큽니다. Protector는 자산 / 자원과 함께 javaw.exe를 포함하는 거의 최고의 소형 임베딩입니다. 그들이 jar 파일을 크랙 할 수 없다는 것보다 ... 나는 당신이 lib 디렉토리없이 4MB 이하의 exe에 자신의 jar에 만족하길 바랍니다-만약 당신이 jvm.cfg 오류 메시지에 문제가 있다면 그것은 당신이 루트에 포함 된 exe를 복사하지 않는다는 것을 의미합니다 jre 또는 jdk의 디렉토리

포함 된 exe가 여기에 jre 또는 jdk 루트 디렉토리 외부에 있는지 확인하십시오.

I hope you haven't problem if you use Protector x86 than it need use i586, Protector x64 for jre x64

If you use Protector x64 with jre x86/i386 - It is okay no problem. It works fine.

Best regards

// EDIT:

UPDATED NEW VERSION EXCELSIOR JET + VIRTUAL BOX OR PROTECTOR are almost best "embedded applications"

Check youtube: https://www.youtube.com/watch?v=ctbIxq-1MGE

참고URL : https://stackoverflow.com/questions/2258932/embed-a-jre-in-a-windows-executable

반응형