3 ms·
It'll help build cross-platform desktop applications. In theory, it'll streamline using GitHub Actions to produce platform-specific binaries, such as my FOSS M
by thangalin 4y ago
It'll help build cross-platform desktop applications. In theory, it'll streamline using GitHub Actions to produce platform-specific binaries, such as my FOSS Markdown editor KeenWrite[0], without having to have a copy of every target operating system.
To my knowledge, cross-compiling "native" Linux and Windows binaries using Java requires duct tape, chewing gum, and warp-packer.[1][2] If there's another way to cross-compile a Java application into a standalone binary for multiple target platforms, do tell!
GraalVM isn't a panacea. For example, GraalVM cannot compile Renjin[3], a pure Java R interpreter, which means switching from Renjin to FastR. Not trivial. Other sinkholes likely lurk that'll only reveal themselves when walking through the weeds.
[0]: https://github.com/DaveJarvis/keenwrite https://github.com/DaveJarvis/keenwrite
[1]: https://dave.autonoma.ca/blog/2020/06/29/write-once-build-anywhere/ https://dave.autonoma.ca/blog/2020/06/29/write-once-build-an...
[2]: https://github.com/dgiagio/warp https://github.com/dgiagio/warp
[3]: https://github.com/bedatadriven/renjin/issues/564 https://github.com/bedatadriven/renjin/issues/564
- anentropic 4y agoI'm actually wanting to do this with Graal at the moment ("using GitHub Actions to produce platform-specific binaries") As far as I can tell Graal does not have cross-compilation ability currently (there is an open issue here: https://github.com/oracle/graal/issues/407 https://github.com/oracle/graal/issues/407)