Phông chữ xấu / không khử răng cưa trong các ứng dụng Java-Swing


15

Gần đây tôi đã chuyển sang Ubuntu và tôi đã cài đặt Java JDK 8u45 (32 bit) của Oracle bằng cách sử dụng kho lưu trữ webupd8team / java.

Mọi thứ dường như đang hoạt động tốt, ngoại trừ các ứng dụng Java-Swing đang có các phông chữ bị hỏng và xấu, không có khử răng cưa. Thay đổi phông chữ không hoạt động. Các ứng dụng gốc như Gedit mặc dù có cùng phông chữ không bị ảnh hưởng (cũng không phải là các ứng dụng Java không xoay vòng như Eclipse); nó chỉ ảnh hưởng đến các ứng dụng dựa trên Swing.

Ảnh chụp màn hình: (jEdit v5.1)

Ảnh chụp màn hình của jEdit

Tôi đang chạy Ubuntu 15.04 (đây là phiên bản mới nhất kể từ 2015-06-15). Phiên bản Java của tôi là 1.8.0_45 và 'java -version' cung cấp đầu ra sau:

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Server VM (build 25.45-b02, mixed mode)

Tôi đã thử các bản sửa lỗi được đưa ra trong các câu hỏi tương tự (ở đây và trên các trang web stackexchange khác) nhưng chúng không hoạt động. Tôi cũng đã thêm các dòng sau trong / etc / môi trường (như được đưa ra ở đây: https://wiki.archlinux.org/index.php/Java_R nb_En môi_onts ) nhưng chúng không cho tôi bất kỳ kết quả rõ ràng nào.

JAVA_FONTS=/usr/share/fonts/truetype
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

Tôi chắc chắn phải có một sửa chữa cho điều này. Các ứng dụng Java tương tự đang hoạt động như bình thường trên Windows-7.

Câu trả lời:


16

Vấn đề này đã được khắc phục từ lâu nên tôi quyết định nên đăng giải pháp. Lưu ý rằng vấn đề vẫn còn đó theo mặc định nhưng nó có thể được khắc phục bằng một tham số.

Thêm dòng này:

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'

để /etc/environmentkhắc phục vấn đề.

Khắc phục sự cố này hoạt động kể từ Ubuntu 16.04 và OpenJDK 8u151 (chưa được kiểm tra với Oracle JDK hoặc Java 9).

Ví dụ làm việc: nhập mô tả hình ảnh ở đây

Lưu ý : Một số phông chữ và cài đặt AA làm phức tạp vấn đề. Trong jEdit, tôi sử dụng các phông chữ Java mặc định ("Hộp thoại" như được gọi) cho mọi thứ. Bạn có thể có thể sử dụng một phông chữ khác cho Vùng văn bản nhưng Hộp thoại là nút tốt nhất cho các nút, v.v. Cài đặt Vùng văn bản tốt nhất mà tôi tìm thấy là chuẩn nhưng số dặm của bạn có thể thay đổi.


1
Giải pháp của bạn hoạt động rất tốt!
Nadav B

1
Một lần nữa cần thiết kể từ Ubuntu 18.10 và OpenJDK 11. Và vẫn hoạt động! :)
tanius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.