Skip to content

Java Versions

parg edited this page Oct 25, 2022 · 13 revisions

BiglyBT's minimum and recommended Java version is 8 (or 1.8 as it is also known)

While newer versions of Java have exciting bling they also often deprecate features that are used by BiglyBT. Of interest:

  • Version 15: The Nashorn JavaScript engine was removed. This prevents the JavaScript automation features of BiglyBT from working. As this feature is pretty much unused (as far as the developers know) it may not be significant. Apparently GraalJS can be used as a replacement but this has not been researched.

  • Version 16: Finally enforces module encapsulation, up until this version warnings were logged but the functionality still worked. BiglyBT uses its own 'DNS Service Provider' proxy to prevent the attempted resolution of I2P and Tor addresses via DNS (as this leaks information about the addresses). Back in Java version 8 there was an offical way of doing this. The was removed in a later version at which time a 'hack' was used via reflection to continue supporting the behaviour. Unfortunately this hack involved injecting BiglyBT code into the Java runtime. Version 16 finally causes this to fail as the Java Module system now prevents such cross-module reflection. There is still a work around but it requires changes to the Java command line. Specifically you need to add

       --add-opens java.base/java.net=ALL-UNNAMED

       In the future the BiglyBT launcher may be updated to do this.

Switching Versions

If you want to switch to a version more recent than that shipped with BiglyBT (currently 8) then you will need to download and install it yourself. For example, Oracle builds are available here: https://www.oracle.com/java/technologies/downloads/ (see below for alternative vendors)

Simply installing a newer version won't in general cause BiglyBT to use it. If you select the "About" menu item then a window is opened that shows the current Java version and install location in the "System" area. You may need to rename or delete the existing Java version to cause BiglyBT to use your installed version (obviously when BiglyBT isn't running!). For example, on Windows BiglyBT will usually install a Java 8 runtime in "C:\Program Files\BiglyBT\jre". BiglyBT will continue to use this runtime unless you rename/delete it.

Vendors

https://www.oracle.com/java/

https://openjdk.java.net/

https://adoptopenjdk.net/index.html

https://www.openlogic.com/openjdk-downloads

https://www.azul.com/downloads/zulu-community/?package=jdk

64 -vs- 32 bit JVMs

Oracle has stopped shipping a 32-bit version of Java, the last one was 1.8.

Other vendors still offer 32-bit versions, for example AdoptOpenJDK.

SWT

BiglyBT uses the SWT graphics library from Eclipse.

The last 32-bit release of SWT was in 2018, version 4.9 (4919). Therefore, if you decide to run a 32-bit version of BiglyBT, you will be limited to a rather out-of-date graphics library that will, over time, have more and more issues. It is also an issue for the BiglyBT developers to continually have to ensure compatability so, sometime not so far far away, BiglyBT support for 32-bit will end.

Eclipse switched to a minimum Java version of 11 with release 4.21 and later. While BiglyBT supports a minimum Java 8 this will require old SWT libraries to be used which, again, over time will lead to more issues and unfixed bugs. As of 2022/10/25 beta Windows users running Java 11 or higher will receive more recent SWT builds.

You can install your own SWT versions by going to https://download.eclipse.org/eclipse/downloads/index.html and selecting the desired version. Then scroll down to "SWT binary and Source" and select the desired platform download. This will give you a .zip file - inside this you will find an "swt.jar". Replace the "swt.jar" in the BiglyBT install folder (perhaps backup the previous one in case things don't go as planned!)

Download BiglyBT

Clone this wiki locally