Skip to content
Enhanced Open Java Development Kit for Linux developers
Branch: master
Clone or download
Latest commit 688b97a Nov 19, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
quilt-patches Refreshing for 8u152 Nov 14, 2017 Updating old scripts. Apr 2, 2015 Work in progress on version 02. May 26, 2015 Refreshing to upstream version 8u51. Jul 15, 2015 Refreshing for 8u152 Nov 14, 2017 Adapting scripts and spec files to version 03. Jun 10, 2015 Improvements for script. May 4, 2015
tuxjdk-beta.spec Working version of spec file for tuxjdk-beta. Jun 28, 2015
tuxjdk-rpmlintrc Work in progress on version 02. May 26, 2015

This project contains series of patched to OpenJDK to enhance user experience with Java-based and Swing-based tools (NetBeans, Idea, Android Studio, etc)


Download latest build of tuxjdk for different distributions here: OBS repository
It will be installed under /opt/tuxjdk and will not touch the alternatives and any other java binaries you might have in path.

Quickstart (for packagers and developers)

TuxJdk uses Quilt to manage patches, and here is a good tutorial on using Quilt.
Additionally, project contains number of helper scripts to automate most common tasks.
To apply tuxjdk, do the following steps:

# clone tuxjdk:
git clone ''
# clone openjdk:
hg clone '' $HGTAG
bash ./
bash ./common/bin/ checkout $HGTAG
# run helper script to apply tuxjdk onto openjdk sources:
# tuxjdk applied, now we can create external build folder:
mkdir ../build
cd ../build
# and run configure script with your favourite options:
bash ../$HGTAG/configure <your options here>
# then make images:
make JAVAC_FLAGS=-g images
# now wait until the build is complete, and go see the images:
ls images/j2sdk-image
ls images/j2re-image


Verion of tuxjdk is a desperate attempt to put some sense into current java versioning scheme. First two numbers reflects major and update version of java for which current patches are adapted. Third number is the version of tuxjdk itself, padded with 0 to have a natural sorting.

Distribution packagers

  • Source package files for Ubuntu/Arch/others are appreciated.
  • Project is organized into series of patches, they should not be dependent. Feel free to use them selectively and report any issues.

Patches list

  • backport contains patches that may be included in next version of openjdk or those that should but probably will not.
  • compare-pointer-with-literal fixes a mistake in C code, detected by OBS.
  • less-warnings disable some most noisy warnings during the compilation.
  • opensuse-link-zlib-as-needed fixes the linking against system zlib.
  • tune contains patches to tune the openjdk default settings or distribution package.
  • default-gc changes the default garbage collector to ConcMarkSwee, it greatly lowers the footprint and boosts the performance of NetBeans.
  • empty-ctsym makes the ct.sym file completely empty.
  • full-srczip forces the openjdk to pack all the existing sources into file, even from com.sun and sun packages.
  • tuxjdk contains tuxjdk-specific changes, mostly fonts related.
  • change-vendor changes the system properties to identify tuxjdk as vendor.
  • add-fontconfig-support forces reading of system fontconfig settings and rendering the fonts similarly to native toolkits such as Qt and GTK, instead of using hardcoded rendering path.
  • configurable-ui-fonts fixes the typographical point size (upstream openjdk completely ignores the 1/72" standard), adds a possibility to configure defaut font size (hardcoded to 12 in most locations and to 11 in some locations in upstream) and allows to specify desired default font antialiasing if the are any problems detecting one from system (upstream defaults behaviour is not well-defined, and needs constant attention from developers not to forget to set proper RenderingHints).

Planned features, tasks backlog


  • change logic of 'awt.useSystemAAFontSettings'.
  • get working cacerts file to make egit work with github.
  • fix the build of openjdk using statically-linked tuxjdk.


  • add possibility to specify antialiasing 'grayscale.'
  • change antialiasing 'on' to autodetect between grayscale and lcd.
  • font size scaling: configure font size to 12 but render as 9, for badly-written apps like jedit.
  • split single huge patch into series of smaller patches.
  • check fontconfig support for memory leaks.

General tasks

  • add default settings autudetection app.
  • Ubuntu packages
  • document font size settings
  • document font antialiasing settings
  • document font scaling settings
  • document default GC change
You can’t perform that action at this time.