Die aktuelle Version BlueJ 4.2.2 wurde bei mir ohne Fensterrahmen unter Linux (elementary OS 5.1) dargestellt. Im folgenden Beitrag ist beschrieben, wie sich dieses Problem lösen lässt.

Das Problem: BlueJ-Fensterrahmen fehlen bei eOS-Linux

Nach der Installation der aktuellen Version 4.2.2 der Lernanfänger-Entwicklungsumgebung für Java trat bei mir mit elementary OS "Hera" das oben beschriebene Problem auf. BlueJ startete zwar, aber ohne Fensterrahmen, wodurch die Anwendung natürlich nicht sinnvoll zu nutzen war. Zuvor hatte die BlueJ-Installation bei mir eigentlich immer problemlos funktioniert, da unter Ubuntu bzw. darauf basierenden Distributionen die Installation des BlueJ-Deb-Pakets, welches auf der BlueJ-Webseite zum Download gibt, genügte. Die notwendigen, abhängigen Bibliotheken wurden automatisch mit installiert.

BlueJ Fensterrahmen Linux 1

Diese Installation klappt auch unter elementary OS soweit ohne Fehlermeldung. Nach dem Download von bluej.org ließ sich die aktuelle Version 4.2.2 im Terminal folgendermaßen installieren:

sudo apt install /home/Nutzer/Downloads/BlueJ-linux-422.deb

Der Pfad zur Deb-Datei muss natürlich an den eigenen Benutzernamen und den gegebenenfalls gewählten Download-Ordner angepasst werden. So lief die Installation auch ohne weitere Probleme durch. Ein "böses Erwachen" folgte dann aber beim Start von BlueJ. Die Anwendung wurde zwar ausgeführt, allerdings am linken oberen Bildschirmrand und ohne Fensterrahmen, sodass sich das BlueJ-Fenster nicht bewegen ließ und mit der Entwicklungsumgebung nicht zu arbeiten war.

Um den Fehler einzugrenzen, bot sich ein Aufruf von BlueJ über das Terminal an. Dort erschien dann die Fehlermeldung:

Gdk-WARNING **: 16:22:03.160: XSetErrorHandler() called with a GDK error trap pushed.
Don't do that.

Das stieß mich zugegebenermaßen an die Grenzen meiner Ahnung von der Materie. Einige Internetrecherchen weiter hatte ich den Verdacht, dass offenbar dabei Probleme mit der aktuellen Version der GTK-Programmbibliothek gab beziehungsweise im Zusammenspiel zwischen Desktop-Oberfläche und dieser Bibliothek.

BlueJ Fensterrahmen Linux 2

Workaround 1: Alte BlueJ-Version verwenden

Mein erster Workaround um BlueJ mit Fensterrahmen unter elementary OS-Linux zu verwenden bestand darin, dass ich von der BlueJ-Seite die letzte Veröffentlichung der 3er-Programmversion, also konkret BlueJ 3.1.7, heruntergeladen und installiert habe. Diese Version ließ sich auf gleiche Weise wie oben beschrieben anstandslos installieren und funktionierte auch korrekt mit Rahmen um das BlueJ-Fenster.

Damit habe ich dann ein paar Wochen gearbeitet, was auch in meinem konkreten Anwendungsfall kein grundsätzliches Problem war, da keine der Neuerungen der 4er-Version dafür erforderlich waren. Wirklich zufriedenstellend fand ich diese Lösung allerdings nicht.

Workaround 2: GTK2 vorgeben, um BlueJ mit Fensterrahmen zu starten

Nach mehr oder minder fruchtloser Suche in den Weiten des Internets bin ich dann irgendwann über den Hinweis gestolpert, dass man beim Start der Java-VM für BlueJ eine GTK-Version vorgeben kann. Dies führte schließlich zum zweiten Workaround für das Problem "BlueJ ohne Fensterrahmen" Problem bei meiner Linux-Distribution.

Um BlueJ 4.x unter elementary OS mit Fensterrahmen starten zu können muss man im Startskript der Anwendung GTK2 als GUI-Toolkit definieren. Dazu muss man die Datei /usr/bin/blueJ mit Root-Rechten editieren und ganz am Ende dieser Datei beim Aufruf von Java den Parameter -Djdk.gtk.version=2 zum Setzen der GTK-Version übergeben.

BlueJ Fensterrahmen Linux 3

Editieren lässt sich besagte Startdatei für BlueJ beispielsweise im Terminal mit

sudo vi /usr/bin/bluej

Mit der genannten Anpassung muss die letzte Anweisung dann folgendermaßen lauten:

"$JAVAPATH/bin/java" -Djdk.gtk.version=2 -Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M \
-cp "$CP" bluej.Boot ${JFXRTOPT:+"$JFXRTOPT"} ${JFXRTOPT2:+"$JFXRTOPT2"} "$@"

Mit dieser Vorgabe lässt sich dann BlueJ 4.2.2 auch unter elementary OS 5.1 korrekt und wie gewünscht mit Fensterrahmen verwenden.

BlueJ Fensterrahmen Linux 4

Kommentare (0)

Bisher wurden hier noch keine Kommentare veröffentlicht

Einen Kommentar verfassen

  1. Kommentar als Gast veröffentlichen.
0 Zeichen
Anhänge (0 / 3)
Deinen Standort teilen
Wir benutzen Cookies
Mit der Nutzung dieser Website erklären Sie sich damit einverstanden, dass wir Cookies verwenden.