Package: wnpp Severity: wishlist * Package name : findjava Version : 0.3.2 Upstream Author : Loïc Rouchon * URL : https://github.com/loicrouchon/findjava * License : Apache-2.0 Programming Lang: Go/Java Description : java application startup script helper
findjava is a tool whose goal is to find the best-installed java to run your java application according to your program's specific constraints. Requiring a particular version of java to be installed is a job for a package manager. However once installed, it is still a difficult task to locate the proper one when multiple versions are installed. This makes the java packaging experience extremely complicated and/or the user experience quite bad if relying on the version in $PATH as it could fail depending on which version is currently in the $PATH. The current solution is to rely on the java-wrapper package to find the appropriate version to use for a java program. findjava provides an improved alternative to the java-wrappers package as it: * supports specifying not only the minimum java version required but also the maximum version supported. * is cross-platform meaning it will ease writing start scripts for java applications as the same mechanism (findjava) can be used for Debian, fedora, macOS, ... * can find not only java, but javac, or the path to a java installation having multiple of those programs It also allows the system to specify system-level constraints which can be overridden on a per-program basis giving control to Debian for specifying the version range for the whole system while allowing specific packages requiring special configuration to opt out if needed. findjava has been started following the discussion "Packaging applications with JVM version restrictions" (https://lists.debian.org/debian-java/2023/04/msg00003.html and https://lists.debian.org/debian-java/2023/05/msg00004.html) ## Open for feedback I'm the main developer behind findjava. So far, I did not get any feedback from Debian developers but I'm more than happy to improve the findjava to meet the specific needs of Debian developers/maintainers. ## Technical details: It is written in Go to minimize the overhead required during the resolution of the requested java version. It typically takes 5 to 20ms to find the proper java version on an old Intel i5-7200U after the initial lookup. The initial lookup is slightly longer as it requires extracting the java version and other metadata from the found JREs. findjava performs this extraction by running a single java class against the discovered JREs. This takes around 200ms per JRE but is only computed if a new JRE is discovered or one is updated. ## Packaging I have no experience when it comes to packaging for Debian, hence the RFP. I however already made a source package for Ubuntu that I uploaded to launchpad: findjava - 0.3.1-1~lunar https://launchpad.net/~loicrouchon/+archive/ubuntu/symly/+packages I hope this helps