"Best" is a
word frequently misused by the ignorant. Which is "best", apples or oranges? Depends on your tastes, needs and even allergies.
In this case, there's also a number of other factors. Linux doesn't actually
have a GUI. Linux is the kernel, and if you say "Linux", meaning "gui" without saying "gnu", Richard Stallman will come and batter you about the head and shoulders.
Linux GUIs are based on a windowing system (almost invariably MIT's "X" window system) and made fit for human consumption by the addition of a desktop. Most distros default to either KDE or Gnome, though there are literally dozens of other desktops that have been developed for X. For the big name distros, like Red Hat, you generally can either select which desktop you wish to run under and/or can switch to a different desktop via a simple user command.
A lot of the config utilities and such have gui wrappers. These are programs, often in Python (Red Hat likes Python for this stuff). All they do is present dialogs, take the data and invoke the command-line config utility . Historically, these apps would use curses to make a character-mode gui (using "curses") if you weren't running X, otherwise they'd present a gui dialog(s).
With all those options, the word "best" seems to be a little feeble, I think.
The reality is, pick whatever makes you comfortable. Generally, that means whatever people around you like, since that way you'll have more local support. In the US, Red Hat (Fedora, if you want "bleeding-edge" stuff) and SuSe are preferred for business due to their vendor support, Debian and its spinoffs (including Knoppix and Ubuntu) are popular with home users. Other countries often have their own preferences, as there are many regionalized variants.
Java's not all that picky. Almost any Linux will run Java, as long as the hardware's up to it.