HTTP/2 301
server: AkamaiGHost
content-length: 0
location: https://openjdk.org/jeps/153
date: Tue, 29 Jul 2025 22:36:10 GMT
HTTP/2 200
content-type: text/html
last-modified: Wed, 18 Jun 2025 03:23:11 GMT
vary: Accept-Encoding
etag: "6852311f-2e90"
content-security-policy-report-only: default-src 'self' *.openjdk.java.net feedburner.google.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' feeds.feedburner.com *.statcounter.com statcounter.com; img-src 'self' data: *.statcounter.com *.openjdk.java.net feedburner.google.com; frame-ancestors 'none'; report-uri https://openjdk.report-uri.io/r/default/csp/reportOnly
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
x-akamai-transformed: 0 - 0 -
content-encoding: gzip
date: Tue, 29 Jul 2025 22:36:12 GMT
content-length: 3415
set-cookie: _abck=CDB3C07974EEE8DC61C7846990FBC6B2~-1~YAAQNAHARb42Lz2YAQAAtjtUWA6ydUIBo0OZvZUj3F+XVi1pj8lEZWtA2tLTnd8YRvH2lVTpJ0aKx44GxMX2qsj9Jxg1Y37jVkuWn12/cc72tmp/PntxFkgvCSLMT2f1BehY88qchqKKA31Wz0zPX57JTVvYkBaEp/BToj9B9g6sDB/1xfQ+R1ozuCyz1rzhkD7LBYHjcEQH55b89NMVTtRhZQFNSg7PJMm8meUM5HZLK2Ug31/DuLXzgVuX0fuDR35KQVUS5Vfg4mmUS361Lz620TgsZlrDwSx17FW5xGaD1P9ZBNFKYHsSiXGJAXUpKWeRY2K5m9GJzG1Oto9bsxCjKwBnHYDhxaTVExQhZqUZ9/QeafvV9NOfZ48TpfhQZsf4NFd0LQ9a5iqoeQ9fE4iiC3YuRGhli0HdeLJXJjuXGESv3yzVDAeKR0B2DJtretNPKwo=~-1~-1~-1; Domain=.openjdk.org; Path=/; Expires=Wed, 29 Jul 2026 22:36:12 GMT; Max-Age=31536000; Secure
set-cookie: bm_sz=924AE840247718339D140AC04484D98B~YAAQNAHARb82Lz2YAQAAtjtUWBxQ4Nea8idTwK3VDL2FbnOuKNec+mg1Uzs76aRL/vzoyHteyx0MrgbH7g2GZiA0K6K3gemI8X9IG/ffAiacVQr+9Q9dAJbC9rThRbt5GddSzYghoAJ70R5uqVtyZRWnY7yIU0RH+2VB0zJzEnKFWnKjfZAOOdwI509tt+JGKhqsUaB3kKxt+vlrpIoT1k2kYJUFFmSHL5ltvEekNZKq9Z+I0FYdU6h79tEkPzI7kYMntAR1LDLTQrZE07POxNljFmDtZAQHQaXeWWdOFyrF+MYje1J/3tA5KdxrO5QoLZf4ksSVluwZ/KJyF3eOXwhXS3zykOaDaSxwaQWXKoggl/uQ9tGngbg=~3752761~3553591; Domain=.openjdk.org; Path=/; Expires=Wed, 30 Jul 2025 02:36:11 GMT; Max-Age=14399
JEP 153: Launch JavaFX Applications
Owner | Kumar Srinivasan |
Type | Feature |
Scope | JDK |
Status | Closed / Delivered |
Release | 8 |
Component | client-libs |
Discussion | core dash libs dash dev at openjdk dot java dot net |
Effort | S |
Duration | S |
Endorsed by | Brian Goetz |
Created | 2011/10/27 20:00 |
Updated | 2025/06/18 03:10 |
Issue | 8046143 |
Summary
Enhance the java
command-line launcher to launch JavaFX applications.
Goals
In addition to supporting the launching of Java classes through their
main
methods, and of executable JARs through their Main-Class
manifest headers, the java
launcher should also support the direct
launching of JavaFX application JARs.
Non-Goals
The feature will not enhance the launcher to:
- Download any components from the network,
- Replace existing RIA deployment tools, or
- Launch modularized JavaFX applications.
Success Metrics
This feature should not adversely affect the startup performance of
non-JavaFX applications and tools.
Motivation
JavaFX applications are currently launched via the java
launcher by
bundling the JavaFX initialization logic as the main class in the
application's JAR file. In the event that this logic is erroneous,
having the initialization logic embedded in the deployed JARs makes it
difficult to distribute fixes without redistributing all applications.
By moving the initialization logic into the java
launcher itself, this
problem can be eliminated.
Description
Mark JavaFX application JARs so that the launcher can recognize them and
then use JavaFX-specific logic to launch them. One way to do this would
be to define a new JAR-manifest header.
Testing
Existing startup performance tests will be run.
Dependences
This feature depends on upon JavaFX being integrated into the JDK.