OpenJDK-8 / Oracle JDK 8-Schriftarten-Patches für Ubuntu


8

Gibt es eine gepatchte Version von OpenJDK-8 oder Oracle JDK 8 für Ubuntu 14.10, die hässliche Schriftarten in Java-Anwendungen (Jetbrains-Produkte, Netbeans usw.) behebt?

Ich hatte zuvor in diesem Artikel eine gepatchte Version von OpenJDK7 für Ubuntu 14.04 installiert , aber sie scheint für 14.10 nicht verfügbar zu sein. Ich konnte auch keine gepatchte Version für OpenJDK8 / OracleJDK8 finden.

Wenn es eine gepatchte Version oder einen Patch für OpenJDK8 / OracleJDK8 gibt, den ich installieren könnte, würde ich mich sehr freuen, wenn jemand darauf hinweisen kann.

Vielen Dank.


Moderne Versionen von IntelliJ bringen ihre eigene JVM mit. Höchstwahrscheinlich in der Lage, solche Dinge zu handhaben.
Thorbjørn Ravn Andersen

Antworten:


9

Nachdem ich verschiedene Tutorials gelesen und eine Reihe von Korrekturen durchgeführt habe, habe ich einen Weg gefunden, der perfekt funktioniert.

Laden Sie zunächst JDK 8 von Oracle herunter und führen Sie die folgenden Zeilen im Terminal aus:

cd Downloads
tar -xvf jdk-8u25-linux-x64.tar.gz
rm jdk-8u25-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/
sudo mv jdk1.8.0_25 /usr/lib/jvm/

Laden Sie nun den JDK-Font-Fix (mit freundlicher Genehmigung von Urshulyak Yaroslav ) herunter, indem Sie Folgendes ausführen:

cd ~/Downloads
wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
tar -xvf jdk-8u5-tuxjdk-b08.tar.gz
sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
rm jdk-8u5-tuxjdk-b08.tar.gz

Dadurch wird die heruntergeladene Zip-Datei extrahiert und nach / usr / lib / jvm / verschoben. Führen Sie nun im Terminal Folgendes aus:

cd ~
sudo gedit .bashrc

Fügen Sie dann die folgenden Zeilen ganz unten in der bashrc-Datei hinzu.

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME

Speichern Sie es und geben Sie die Idee ein. (Ihr Skriptspeicherort kann unterschiedlich sein)

gedit /home/USER/Downloads/idea/bin/idea.sh

Ersetzen Sie ganz unten im Skript die Zeile (n) in der While Do-Anweisung unten durch diese beiden Zeilen:

eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break

Speichern Sie es und öffnen Sie IntelliJ. Die Schriftarten sollten funktionieren und Sie werden Oracle JDK 8 für die Entwicklung verwenden. Sie müssen wahrscheinlich die Projekteinstellungen bearbeiten und Ihr JDK erneut einrichten. Verwenden Sie jedoch unbedingt das tatsächliche JDK und nicht das Font Fix.

Dieses Update funktioniert auch mit CLion , Android Studio und PyCharm .

Diese Anweisungen setzen voraus, dass die JDK-Version 1.8.0_25 war. Die Datei- / Pfadnamen ändern sich für zukünftige Versionen.


Vielen Dank für die ausführliche Antwort. Ich habe Ihre Lösung ausprobiert, aber meine Schriftarten wurden größer und mutiger. Ich konnte die Schriftgröße verringern, aber die fetten Schriftarten nicht auf normal ändern.
Deepal

Ja, die Größe wurde auf 14 erhöht (ich habe meine auf 11 geändert), aber meine Schriftarten waren nicht fett? Ich nehme an, Sie haben die anderen Schriftarten ausprobiert, um festzustellen, ob sie noch fett sind.

Ja. Nicht alle Schriftarten sind fett gedruckt. Die Schriftart, die ich derzeit verwende, wurde fett gedruckt. Ich denke, ich muss vielleicht damit leben. Gibt es eine Möglichkeit, diese Lösung auf alle Java-Anwendungen anzuwenden, außer ihre ausführbaren Dateien zu ändern? Ich meine auch Dateien zu jar? Kann ich dieses gepatchte JDK nicht als Standard-JDK verwenden? Ist es nicht ein vollständiges JDK?
Deepal

1
Entschuldigung, ich kann nicht mit den fetten Schriftarten helfen. Sie könnten vielleicht versuchen, eine weitere Kopie der Schriftart herunterzuladen, die einen Versuch wert ist, wenn es Sie so sehr stört. Sie können versuchen, mit der Schriftkorrektur herumzuspielen. Ich hatte einige Probleme bei der Verwendung als JDK. Sie können versuchen, das vollständige openJDK herunterzuladen und die beiden zusammenzuführen, das könnte funktionieren.

3
@Deepal Stellen Sie sicher, dass Sie auch export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.xrender=true"in Ihrem bashrc einstellen
Salem

1

So vervollständigen Sie die Antwort von DanielSteward:

Leider verwendet tuxjdkLook and Feel für GTK die in der aktuell verwendeten gtkrc festgelegte Schriftart. Bei den meisten Themen wird dort jedoch keine Schriftart festgelegt. Infolgedessen verwenden Netbeans Fettdruck Arial 15 als UI-Schriftart.

Um dies zu beheben, erstellen Sie gtkrc nur für Netbeans mit fester Schriftart und weisen Sie Netbeans an, diese Datei zu verwenden.

Ich habe einen speziellen Launcher vorbereitet, der dies halbautomatisch macht:

#! / bin / bash

### Anpassbare Variablen: ###

# Pfad, in dem Netbeans installiert wurde
NETBEANS_PATH = $ {NETBEANS_PATH: - ~ / opt / netbeans-dev-2015-06-04} / bin / netbeans
# Name der Desktop-Umgebung, aus der der Stil verwendet werden soll
USED_DE = $ {USED_DE: -mate}
# Tuxjdk scheint zu große UI-Schriftarten zu rendern. Verwenden Sie diesen Wert, um sie zu verringern
FONT_SUBTRAHENT = $ {FONT_SUBTRAHENT: -3}

#################################

Funktion remQuotes () {
  Echo "$ {@ // \ '/}"
}}

Funktion AbnahmeFontSize () {
  lokaler Subtrahend = $ 1; Verschiebung
  local args = "$ @"
  echo $ {args // [0-9] /} $ (($ {args // [! 0-9] /} - $ subtrahend))
}}

theme = $ (remQuotes `gsettings get org. $ {USED_DE} .interface gtk-theme`)
font = $ (remQuotes `gsettings get org. $ {USED_DE} .interface font-name`)
font = $ (verringernFontSize $ FONT_SUBTRAHENT $ font)

themeDirs = $ (find ~ / .themes / / usr / share / themes / -type d -name "$ {theme}")
gtkRcPath = ""
für dir in "$ themeDirs"; tun
  if [[-f "$ dir / gtk-2.0 / gtkrc"]]; dann
    gtkRcPath = "$ dir / gtk-2.0 / gtkrc"
    brechen;
  fi
erledigt

if [["$ gtkRcPath" == ""]]; dann
  echo "Thema nicht gefunden"> / dev / stderr
  ./$NETBEANS_PATH $ @
fi

cat $ HOME / .netbeans / .gtkrc-2.0
include "$ gtkRcPath"

Stil "Benutzer-Schriftart" {
    font_name = "$ font"
}}

widget_class "*" style "user-font"

gtk-font-name = "$ font"

EOF

GTK2_RC_FILES = ~ / .netbeans / .gtkrc-2.0 $ NETBEANS_PATH $ @

Dadurch werden Ihre Themeneinstellungen gelesen und gefälschte Themen nur für Netbeans erstellt. Sie müssen sich anpassen NETBEANS_PATHund USED_DEVariablen an Ihre Umgebung anpassen .


0

Ich habe Openjdk 8u40 selbst erstellt und Tuxjdk-Patches angewendet. Außerdem hatte ich eine Datei mit dem Namen erstellen local.confin /etc/fonts/außer Kraft zu setzen java Fontmap für seine logischen Schriftarten wie Dialog, Monospacedusw. Danach, Swing - basierte Anwendungen stark verbessert. Schauen Sie HIER .


0

Im Moment gibt es nur RPM-Pakete für tuxjdk: http://download.opensuse.org/repositories/home:/TheIndifferent:/tuxjdk/

Ich brauche etwas mehr Zeit, um etwas über Debian-Verpackungen zu lernen und die richtigen Pakete vorzubereiten. Außerdem dokumentiere ich einige interessante Funktionen der Version 03 von tuxjdk. Bleiben Sie also auf dem Laufenden und melden Sie alle Probleme mit tuxjdk an https://github.com/TheIndifferent/tuxjdk , damit ich sie reproduzieren und (hoffentlich) beheben kann.


0

Eigentlich müssen Sie sich nicht die Mühe machen, Änderungen vorzunehmen idea.sh, die unter Updates volatil sind. Es gibt eine benutzerspezifische Konfigurationsdatei ~/.IntelliJIdea2016.1/config/idea.jdk(die Namen ändern sich entsprechend), in der das Boot-JDK gespeichert ist .

Offizielle Referenzen:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.