JavaFX는 OpenJDK의 일부입니다.
JavaFX 프로젝트 자체는 오픈 소스 이며 OpenJDK 프로젝트의 일부입니다 .
2019 년 12 월 업데이트
오픈 소스 JavaFX 사용 방법에 대한 최신 정보는 https://openjfx.io를 방문 하십시오 . 여기에는 기존 JDK (예 : Open JDK 설치 ) 에서 액세스하는 모듈 식 라이브러리로 JavaFX를 사용하는 방법이 포함됩니다 .
JavaFX 용 오픈 소스 코드 저장소는 https://github.com/openjdk/jfx에 있습니다.
링크 된 소스 위치에서 오픈 JavaFX에 대한 라이선스 파일을 찾을 수 있습니다 (현재이 라이선스는 OpenJDK에 대한 라이선스 와 일치 : GPL + classpath 예외).
프로젝트의 위키는 https://wiki.openjdk.java.net/display/OpenJFX/Main에 있습니다.
개방형 JavaFX 사용을 빠르게 시작하려는 경우 Belsoft Liberica JDK 배포판은 다양한 플랫폼을위한 개방형 JavaFX를 포함하는 OpenJDK의 사전 빌드 된 바이너리를 제공합니다.
자체 포함 된 애플리케이션으로 배포하기 위해 Java 14는 JEP 343 : Packaging Tool 을 구현할 예정 입니다. "최종 사용자에게 자연스러운 설치 경험을 제공하기 위해 기본 패키징 형식을 지원합니다. 이러한 형식에는 Windows의 msi 및 exe, macOS의 pkg 및 dmg가 포함됩니다. , and deb and rpm on Linux. ", 기본 설치 프로그램이 있고 추가 플랫폼 종속성 (예 : 사전 설치된 JDK)이없는 OpenJFX 기반 응용 프로그램 배포 용.
시간이 지남에 따라 구식이 될 수있는 오래된 정보
OpenJDK 저장소에서 JavaFX 빌드
Oracle JDK 또는 닫힌 소스 코드에 대한 종속성이없는 소스에서 OpenJDK (JavaFX 포함) 의 오픈 버전을 완전히 빌드 할 수 있습니다 .
업데이트 : OpenJDK 소스에서 미리 빌드 된 JavaFX 배포 사용
이 질문에 대한 의견과 다른 답변에서 언급했듯이 Debian Linux 배포판은 OpenJDK를 기반으로 한 JavaFX 바이너리 배포판을 제공합니다.
(현재 이것은 내가 아는 한 Java 8에서만 작동합니다).
JavaFX와 관련하여 Open JDK와 Oracle JDK의 차이점
다음 정보는 자바 9 자바 제 제공하고, VP6 인코딩을 위해 사용되지 자바 FX 및 오라클 웹 시작 / 브라우저 임베디드 어플리케이션 설치 기술은 중단된다 . 따라서 JavaFX의 향후 버전은 Oracle에서 배포하더라도 오픈 소스가 아닌 기술을 포함하지 않을 것입니다.
Oracle JDK에는 OpenJDK에서 사용할 수없는 일부 소프트웨어가 포함되어 있습니다. JavaFX와 관련된 두 가지 주요 구성 요소가 있습니다.
- Google과 Google이 소유 한 ON2 VP6 비디오 코덱은 오픈 소스가 아닙니다.
- Oracle WebStart / Browser Embedded 애플리케이션 배포 기술.
이것은 오픈 버전의 JavaFX가 VP6 FLV 파일을 재생할 수 없음을 의미합니다. VP6 인코더 또는 VP6로 인코딩 된 미디어를 찾기가 어렵 기 때문에 이는 큰 손실이 아닙니다.
H.264와 같은 다른 일반적인 비디오 형식은 JavaFX의 개방형 버전에서 정상적으로 재생됩니다 (대상 컴퓨터에 적절한 코덱이 사전 설치되어있는 한).
WebStart / Browser Embedded 배포 기술의 부족은 실제로 JavaFX가 아닌 OpenJDK 자체와 관련이 있습니다. 이 기술은 비 JavaFX 응용 프로그램을 배포하는 데 사용할 수 있습니다.
OpenSource 커뮤니티가 WebStart 및 Browser Embedded 배포 방법을 완전히 대체하는 Java (및 기타 소프트웨어) 용 배포 기술을 개발하여 응용 프로그램 배포에 대해 가볍고 영향이 적은 사용자 경험을 제공한다면 좋을 것입니다. 이러한 목표를 달성하기 위해 시작된 일부 프로젝트가 있다고 생각하지만 아직 높은 성숙도와 채택 수준에 도달하지 못했습니다.
개인적으로 WebStart / Browser Embedded 배포는 레거시 기술이며 현재 많은 JavaFX 응용 프로그램 (예 : 자체 포함 된 응용 프로그램)을 배포하는 더 좋은 방법이 있다고 생각합니다.
2019 년 12 월 업데이트 :
JDK 11+ 용 WebStart의 오픈 소스 버전이 개발되었으며 https://openwebstart.com 에서 사용할 수 있습니다 .
JavaFX를 포함하는 Linux OpenJDK 배포를 만들어야하는 사람
JavaFX를 포함하는 JDK 및 JRE 용 RPM을 만드는 것은 OpenJDK (예 : Redhat, Ubuntu 등)를 기반으로 Linux 배포 용 패키지를 만드는 사람들에게 달려 있습니다. 그런 다음 해당 소프트웨어 배포자는 생성 된 패키지를 표준 배포 코드 저장소 (예 : fedora / red hat network yum 저장소)에 배치해야합니다. 현재는이 작업이 수행되지 않고 있지만, 2014 년 3 월 Java 8이 출시 될 때 Java 8 Linux 패키지에 JavaFX가 포함되어 있지 않다면 상당히 놀랄 것입니다.
업데이트, 2019 년 12 월 :
이제 JavaFX는 대부분의 바이너리 JDK 및 JRE 배포 (Oracle 배포 포함)에서 분리되었으며 대신 독립 실행 형 SDK, jmod 세트 또는 중앙 Maven 저장소 에서 사용 가능한 라이브러리 종속성 (다음과 같이 설명 됨)으로 사용할 수 있습니다. https://openjfx.io ), JavaFX를 포함하기 위해 표준 Linux OpenJDK 배포판이 필요하지 않습니다.
JavaFX를 포함하는 사전 빌드 된 JDK를 원한다면 다양한 플랫폼에 제공되는 Liberica JDK 배포판을 고려하십시오 .
실질적인 애플리케이션 배포에 대한 조언
Java의 자체 포함 된 응용 프로그램 배포 모드를 사용하는 것이 좋습니다.
이 배포 모드에 대한 설명은 다음과 같습니다.
응용 프로그램은 로컬 드라이브에 설치되고 Java 및 JavaFX 런타임의 개인 복사본을 사용하여 독립 실행 형 프로그램으로 실행됩니다. 응용 프로그램은 해당 운영 체제의 다른 기본 응용 프로그램과 동일한 방식으로 시작할 수 있습니다 (예 : 바탕 화면 바로 가기 또는 메뉴 항목 사용).
Oracle JDK 배포 또는 JavaFX를 포함하는 OpenJDK 빌드에서 자체 포함 된 애플리케이션을 빌드 할 수 있습니다. 현재 Oracle JDK를 사용하면 더 쉽습니다.
Java 버전이 응용 프로그램과 함께 번들로 제공되므로 시스템에 사전 설치된 Java 버전, 기능 및 프로그램과의 호환성 여부에 대해 신경 쓸 필요가 없습니다. 대신 정확한 Java 런타임 버전에 대해 애플리케이션을 테스트하고이를 애플리케이션과 함께 배포 할 수 있습니다. 응용 프로그램을 배포하는 사용자 경험은 컴퓨터에 기본 응용 프로그램을 설치하는 것과 동일합니다 (예 : 설치된 Windows .exe 또는 .msi, OS X .dmg, linux .rpm 또는 .deb).
참고 : 자체 포함 된 애플리케이션 기능은 Java 10-13이 아닌 Java 8 및 9에서만 사용할 수 있습니다. JEP 343 : Packaging Tool을 통한 Java 14 는 OpenJDK 배포판에서이 기능에 대한 지원을 다시 제공 할 예정입니다.
2018 년 4 월 업데이트 : 향후 개발에 대한 오라클의 현재 정책에 대한 정보