I noticed that openjfx packaged in jar caches native libraries in
~/.openjfx/cache/${version}, it is not related to the system and
architecture.

It should be noted that in fact, we can start programs with different
architectures on the same system. A typical example is that Windows x86
software can be run on the Windows amd64 platform.
With the popularization of aarch64 architecture, this situation will become
more common: The software of Windows x86 and Windows amd64 can be run on
the Windows aarch64 platform, and the  software of MacOs x86 can be run on
the MacOS aarch64.

The native library file names of different schemas on the same system are
usually the same, which will cause conflicts.
For example, I tried to launch the same JavaFX application on my Windows
amd64 machine with two jdks that for x86 architecture and amd64
architecture at the same time, and it crashed:

    https://paste.ubuntu.com/p/NZBK3pNrh7/

On ARM machines, it is often necessary to run x86 applications through
translators, and such crashes may be more common.

I think openjfx should adjust the cache path of the native library, such as
~/.openjfx/cache/17.0.2/win-aarch64/.
This can avoid crashes and avoid openjfx repeatedly decompressing the
native library to cover the native libraries of other architectures.

I don't have a JBS account. If you need to open an issue for this problem,
please do it for me, thanks.

Reply via email to