A Few days ago we published the new major version 4.0.0 of PDFsam Basic. Beside the usual upgrades to the PDF engine and translations, few bug fixes and minor improvements, the main objective was to create a standalone self-contained application.
Some of you have written concerned about the new Java policy in which Oracle will not provide free updates to commercial entities as of January 2019. We decide to implement a batteries included solution, switching to OpenJDK 11 and creating a jlinked version of the Java runtime that is now included in PDFsam Basic 4.0.0.
PDFsam Basic 3 is written in Java 8 and requires a Java Runtime 8 with JavaFX installed. There are a number of tricks we have added to the installers to make the Java runtime 8 installation/detection as painless as possible. This process isn’t perfect and may require the user to download and install the runtime adding a layer of complexity that should not really burden to the average user. We never bundled the Java runtime because it’s large, in the order of ~90MB compressed and ~230MB uncompressed and we thought it would not be a good idea to add it to an app the size of PDFsam Basic (~15MB).
Beginning with Java 9, the modularization of Java through the Jigsaw project allowed the use of tools like jlink to create a runtime containing only the modules strictly necessary for the application, significantly reducing the final size of the runtime.
Java 9 also brought a new release model and a new support offer, along with the announcement of the end of free public updates to Java 8 for business users. This created confusion and concern for those users using PDFsam Basic in commercial entities and we received a number of emails asking for things like:
Should we purchase a Java support license in order to continue using PDFsam Basic?
The new packages
For these reasons we decided to move to a self-contained release model. We switched to OpenJDK 11 and created a jlinked version of the runtime that is now included in the PDFsam Basic bundles, starting with version 4.0.0. The runtime size is ~35MB zipped and ~50MB decompressed which leads to a final size of ~50MB for the PDFsam Basic bundles (msi, deb, dmg, zip). With each new release we will include the latest updated version of the runtime. Users now do not have to worry about Java and our installers are simpler, they do not have to detect if the correct version of Java is already installed… no warning for users, no false positives or faulty checks, no need to download the whole Java runtime. Users will not even know that PDFsam Basic requires Java and this is the desired result for the vast majority of them.
PDFsam Basic 4.0.0
Including a jlinked Java runtime was an invasive change, so we decided to leave version 3.3.7 as the stable download through the main download page. We will monitor feedback for the next couple of weeks and eventually change all download links to version 4. You can try the new version batteries included by downloading it from our release page on GitHub.