0

I am packaging some JVM application with AdoptOpenJDK / 11 / HotSpot. I am using the arm32 build, which AFAICS is the only build suitable for Raspbian (running Buster). However, when I build my .deb package and try to install it via sudo dpkg -i mypackage_1.2.3_arm.deb, I get the error message

package architecture (arm) does not match system (armhf)

And I found the work around:

sudo dpkg --add-architecture arm

Why is the arm32 not by default compatible with Raspbian Buster? I mean, the application runs correctly after I add the architecture. Why isn't this architecture enabled by default? Or is there a better build of AdoptOpenJDK I should use?

0__
  • 522
  • 8
  • 27

1 Answers1

0

As @Robert correctly assumed, these versions are incompatible, so adding the architecture is just plastering over it. While basic desktop functionality seems fine, there are subsequent problems, like using the Web View:

Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)

This actually seems to be a problem of the system property os.arch reported as arm and the JavaFX components downloaded with that architecture being wrong. Maybe in the end this yet another reason to dump Raspbian in favour of a standard Linux.

0__
  • 522
  • 8
  • 27