On Fri, 25 Mar 2022 18:12:23 GMT, Glavo <d...@openjdk.java.net> wrote:

> Currently, OpenJFX extracts the native library into a local folder and loads 
> it when it is not part of the JRE.
> 
> Now we have a notable problem with the fact that a platform may actually run 
> programs of multiple CPU architectures.
> 
> Most commonly, 32-bit x86 applications can be executed on Windows AMD64. In 
> addition to this, ARM machines may also execute AMD64 programs by transpiling.
> 
> For OpenJFX of different architectures on the same system, their native 
> libraries have the same file name, but their contents are different. Since 
> they will try to unpack the native library into the same folder, this will 
> cause file conflicts.
> 
> A practical example is when I run the same JavaFX application with both 
> 32-bit and 64-bit Java on a Windows AMD64 platform, and the application that 
> starts later crashes because it cannot unzip the native libraries:
> 
> Crash logs (The length exceeds the GitHub limit): 
> https://paste.ubuntu.com/p/NZBK3pNrh7/
> 
> Here I avoid the problem by adding `os.arch` to the cache path. 
> 
> I ran the tests on Ubuntu 20.04 after the modification and no tests were 
> broken.

Marked as reviewed by jvos (Reviewer).

-------------

PR: https://git.openjdk.java.net/jfx/pull/762

Reply via email to