비 모듈 종속성 자바 (11)에서 응용 프로그램을 패키지화하는 방법

ः Amis258 :

내가 개발하고 아파치 바틱과 JavaCV를 사용하는 자바 스윙 응용 프로그램을 배포 할 수 있습니다. 나는 자바 1.6, 7, 맥 OS, Windows 및 Linux 8. 설치 Javapackager으로 구축을 통해 업데이트되었습니다. 자바 8 월 '19 년 지원 종료와 나는 패키지와 자바 (11), 새 LTS 버전에 배포 할 수있는 솔루션을 찾을 수 없습니다.

JavaCV 또는 바틱 어느 모듈 형 단지를 생산하지만 난 컴파일하고 자바 (11)에서 실행 가능한 병을 생산할 수있는 지점을 재 포장 관리 한 응용 프로그램은 잘 작동하지만 난 배포를 패키지 수 없습니다. JavaCV와 바틱이 모듈하지 않기 때문에 내가 javapackager를 사용하고 거기에서 11 런타임을 번들로 자바 (10)에 떨어 계획되었지만 사용자 정의 런타임을 생산하는 JLINK 사용 JLINK이 실패합니다. jdeps 내 응용 프로그램은 그들없이 잘 작동하더라도,에 패치 모듈 - info.class을 생산하고 바틱과 JavaCV에 만족 참조하기가 모듈 형으로 인해하지 않습니다.

그 결과 나는 자바 8의 코드 기반을두고 있고, 그것이 비록 더 이상 지원되지 발송하겠습니다.

내가 거기 javapackager에 대한 대체를 제작하는 호출입니다하지만 자바 (8)가 사용되지 않습니다 후에 그 방법까지 없을 것이다라는 것을 알고있다. 그리고 난 여전히 사용자 런타임을 생산하기 위해 리팩토링 및 빌드 모듈 형 단지로 바틱과 JavaCV 프로젝트를해야 할 것입니다.

사람이 다른 솔루션을 제공 할 수주십시오? 내가 뭔가를 놓친 적이 있습니까? 감사.

세바스찬 S :

저도 같은 문제를 했어. 나는 JDK (11)를 사용하고 싶었지만에 따라 JDK-8212780 JEP 343 우리가 조금 더 기다려야 할 것이다, 그래서 JDK (13) 예정이다. 자바 8에서 포장 "기본"독립적 인 응용 프로그램 - 패키저는 (적어도 오라클 JDK)에 포함 된 이후 (10)는 문제가 아니었다.

오늘은에 대해 알게 이메일 과 나는 그것을 시도주고 싶은 생각 : 당신은 내 샘플 프로젝트를 볼 수 있습니다 github.com/skymatic/javafx11-test 내가 성공적으로 사용하여 포장, 다시 포트로 jpackager의 JDK 개발 지점에서를 .

내가 여기 한 :

  • 오픈 JDK (11)와 OpenJFX (11)을 사용하여 새하여 HelloWorld 프로젝트를 만들었습니다.
  • 메이븐 빌드에서 패키저하고있는 invoke 다운로드 (가 JDK와 함께 거주 할 필요가 메모를하고 설정해야 할 JAVA_HOME작업에 대한 ...)
  • 보너스 : 내가 사용하는 jdeps내 비 모듈 항아리의 종속성을 발견하고 설정하는 --add-modules작은 런타임 이미지를 생성하는 매개 변수를

물론 그것은 모듈 프로젝트에도 쉽게 : 년 이 내 샘플 프로젝트에 커밋 당신은 내가 사용하는 것을 볼 수 있습니다 jpackager모듈 경로와 주요 모듈 대신 클래스 경로와 주요 클래스의 매개 변수를.

추천

출처http://43.154.161.224:23101/article/api/json?id=173677&siteId=1