# JavaFX

JavaFX is an open-source client application platform and toolkit for developing rich applications, built on Java.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Class Unloading in Layered Java Applications

DevFeed: [Class Unloading in Layered Java Applications](<https://devfeed.tech/articles/class-unloading-in-layered-java-applications-18809.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/class-unloading-in-layered-java-applications/>)

Published: 2020-10-14T15:45:00Z

Content type: tutorial

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [JavaFX](<https://devfeed.tech/topics/javafx.md>), [Quarkus](<https://devfeed.tech/topics/quarkus.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [memory](<https://devfeed.tech/tags/memory.md>), [modules](<https://devfeed.tech/tags/modules.md>)

### AI overview

This article examines class unloading in layered Java applications. It explains how Java platform module system layers can support dynamic plug-ins, including plug-ins in JavaFX applications, and discusses how to ensure classes from removed plug-in layers are unloaded to prevent increasing memory consumption.

### Source excerpt

Table of Contents Do We Really Need Plug-ins? Plug-ins in Layered Java Applications Class Unloading in Practice If Things Go Wrong Learning More Layers are sort of the secret sauce of the Java platform module system (JPMS): by providing fine-grained control over how individual JPMS modules and their classes are loaded by the JVM, they enable advanced usages like loading multiple versions of a given module, or dynamically adding and removing modules at application runtime. The Layrry API and launcher provides a small plug-in API based on top of layers, which for instance can be used to dynamically add plug-ins contributing new views and widgets to a running JavaFX application. If such plug-in gets removed from the application again, all its classes need to be unloaded by the JVM, avoiding an ever-increasing memory consumption if for instance a plug-in gets updated multiple times. In this blog post I'm going to explore how to ensure classes from removed plug-in layers are unloaded in a timely manner, and how to find the culprit in case some class fails to be unloaded.

## Codename One Adds Optional CEF Support to Its Simulator and Changes JavaFX Installation

DevFeed: [Codename One Adds Optional CEF Support to Its Simulator and Changes JavaFX Installation](<https://devfeed.tech/articles/big-changes-and-cef-19217.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/big-changes-jcef/>)

Author: Shai Almog

Published: 2020-07-16T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Chromium](<https://devfeed.tech/topics/chromium.md>), [WebRTC](<https://devfeed.tech/topics/webrtc.md>), [JavaFX](<https://devfeed.tech/topics/javafx.md>), [simulator](<https://devfeed.tech/topics/simulator.md>), [debug](<https://devfeed.tech/topics/debug.md>)

Tags: [chromium](<https://devfeed.tech/tags/chromium.md>), [debug](<https://devfeed.tech/tags/debug.md>), [open](<https://devfeed.tech/tags/open.md>), [webrtc](<https://devfeed.tech/tags/webrtc.md>)

### AI overview

Codename One released support for CEF in its simulator. CEF is off by default during the transition, while JavaFX will no longer install automatically when missing; applications that depend on media or web features may encounter simulator or debugger problems. The article recommends ZuluFX as a short-term workaround and explains that CEF enables Chromium-based browser features including WebRTC.

### Source excerpt

Today we released one of the biggest changes to Codename One's simulator in ages. We added the ability to use CEF (Chrome Embedding Framework). This is currently off by default but even if you don't use it you might feel the impact so it's crucial that you read this post. __ Updated July 31st with additional platform instructions below __ Updated August 2nd with correction to the Linux install script __ Updated August 4th with another correction to the Linux install script The TL;DR The big change for those of you who don't care about the details is this: FX will no longer install automatically if it's missing. That might be a good thing for some applications. But if you rely on media/web things might break in the simulator/debugger.

## Moving Away from Java FX

DevFeed: [Moving Away from Java FX](<https://devfeed.tech/articles/moving-away-from-java-fx-19377.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/moving-away-from-fx/>)

Author: Shai Almog

Published: 2020-06-18T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [JavaFX](<https://devfeed.tech/topics/javafx.md>), [Java](<https://devfeed.tech/topics/java.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>), [Swing](<https://devfeed.tech/topics/swing.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [install](<https://devfeed.tech/tags/install.md>), [java](<https://devfeed.tech/tags/java.md>), [java-8](<https://devfeed.tech/tags/java-8.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>)

### AI overview

Codename One is considering replacing its JavaFX-based simulator and desktop-port implementation with JCEF, because JavaFX installation and compatibility cause support problems and its browser widget has limited web standards support and stability. The existing JavaFX implementation will remain temporarily while JCEF is evaluated.

### Source excerpt

Codename One itself never depended on JavaFX. This kept us small and performant. However, we need JavaFX to support HTML and media in the simulator and on the desktop ports. This was a choice we made easily back in the Java 8 days. JavaFX was integrated into the official JDK and this was an easy choice to make. Then Java 9 came out and everything broke. Most JVMs ship without JavaFX now and downloading it dynamically for the simulator is error prone to say the least. Even I had problems setting up our environment on some foreign machines. Every day we need to deal with multiple support queries and people who have issues with VM configuration. 99% are due to the pain of dealing with JavaFX installation on top of the VM.

## Zulu Desktop Builds

DevFeed: [Zulu Desktop Builds](<https://devfeed.tech/articles/zulu-desktop-builds-19687.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/zulu-desktop-builds/>)

Author: Shai Almog

Published: 2019-04-10T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Java](<https://devfeed.tech/topics/java.md>), [JavaFX](<https://devfeed.tech/topics/javafx.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [deployment](<https://devfeed.tech/tags/deployment.md>), [java](<https://devfeed.tech/tags/java.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The article explains changes to Codename One's Java desktop deployment process. Because ZuluFX packaging produced oversized applications and was unreliable on Windows and macOS, the project is moving to manually generated installers using third-party tools. The new build approach is experimental, and compilation may still fail while issues are resolved.

### Source excerpt

Sometimes you pick up a task and know in advance it's going to be hell to implement it. Sometimes, the hell you were expecting turns out to be WAY worse than you anticipated. This is the case for modern Java desktop deployment. Amazingly, Java was able to take one of the worse deployment processes possible and make it MUCH worse than before. If you haven't used the Codename One desktop port I'll sum it up to you. We use javapackager (formerly javafxpackager) to essentially wrap the jar file as a DMG/pkg on Mac OS and as an EXE/MSI on Windows. This "worked" in the broad sense of the word. It had a lot of issues and we had to create a lot of workarounds.

## Contributing to OSS for Hacktoberfest

DevFeed: [Contributing to OSS for Hacktoberfest](<https://devfeed.tech/articles/contributing-to-oss-for-hacktoberfest-25866.md>)

Original publisher: [Read original article](<http://lordraydenmk.github.io//2017/contributing-to-oss-for-hacktoberfest/>)

Author: Stojan Anastasov

Published: 2017-10-10T00:00:00Z

Content type: opinion

Language: en

Sources: [Stojan Anastasov's blog](<https://devfeed.tech/sources/stojan-anastasov-s-blog.md>)

Topics: [Hacktoberfest](<https://devfeed.tech/topics/hacktoberfest.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [JavaFX](<https://devfeed.tech/topics/javafx.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [bug](<https://devfeed.tech/tags/bug.md>), [development](<https://devfeed.tech/tags/development.md>), [github](<https://devfeed.tech/tags/github.md>), [hacktoberfest](<https://devfeed.tech/tags/hacktoberfest.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [oss](<https://devfeed.tech/tags/oss.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

A personal account of contributing to open-source projects during Hacktoberfest 2017. The author describes fixing an outdated dependency reference and a documentation-related bug, then adding unit tests and fixing another bug in TornadoFx, a JavaFX framework for Kotlin.

### Source excerpt

Digital Ocean in partnership with Github are organizing the fourth Hacktoberfest event this October. If you make four pull requests between October 1 and October 31 to any Github hosted repository you get a Hacktoberfest T-shirt. This year I decided to take part and I already made two pull requests. My first OSS contribution I created my first pull request to an OSS project 3 years after I registered on Github. I know it can be hard to start contributing. At first I didn't think my code was good enough, then I couldn't find the right project with the right issue I could fix. One day an opportunity presented itself. At work I was using auto-parcel to generate the boilerplate required for Parcebale implementation on Android. It's a cool library based on auto-value by Google. At the time I was using version 0.3 - the version displayed in the README file on Github. A few days later while creating another value class I got an error. I googled the error and it led me to an issue on the project's Github page. The issue was closed and a new version, version 0.3.1 was released. The README file was outdated, it still pointed to the previous release containing the bug. I spent 10 minutes because of a bug that was already fixed. What a waste of time. If I wasted time chances are someone else will also run into the same problem so I decided to do something about it. Opening an issue on Github would be nice but the solution was so simple I decided to fix it myself and make a pull request. I also updated another dependency (android-apt) in the README to the latest version. The next day my pull request was accepted and it felt good. Hacktoberfest 2017 A few days after Hacktoberfest 2017 started I run into an interested project on Github - TornadoFx a Lightweight JavaFX framework for Kotlin. I like Kotlin and it's Hacktoberfest so I decided to contribute and maybe get a cool T-Shirt in the process. I noticed the project didn't have enough unit tests so I decided to write a few. I fo

## Questions of the Week 32

DevFeed: [Questions of the Week 32](<https://devfeed.tech/articles/questions-of-the-week-32-19461.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/questions-of-the-week-32/>)

Author: Shai Almog

Published: 2016-11-17T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [JavaFX](<https://devfeed.tech/topics/javafx.md>), [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [pdf](<https://devfeed.tech/topics/pdf.md>), [passwords](<https://devfeed.tech/topics/passwords.md>)

Tags: [bridge](<https://devfeed.tech/tags/bridge.md>), [browser](<https://devfeed.tech/tags/browser.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [posts](<https://devfeed.tech/tags/posts.md>), [weekly](<https://devfeed.tech/tags/weekly.md>)

### AI overview

A weekly Codename One update covering the standard release, plans for the 3.6 release, and answers to developer questions about permissions, running projects, UI components, galleries, dialogs, JavaScript integration, Android behavior, browser features, audio capture, iOS location authorization, and large PDF downloads.

### Source excerpt

I practically had a vacation from blogging these past two weeks with all the great posts from Steve. I've put some work into something interesting but it's not yet ready for prime time. If you follow the git commits you might have noticed we'll discuss it when we think it's ready. This week we (thankfully) aren't releasing a plugin update and just releasing the standard weekly release as usual. Hopefully, things will cool down a bit and we'll be able to sprint to the 3.6 release easily.