Tôi có thể đặt Tùy chọn Java toàn cầu ở đâu?


10

Tôi có các phông chữ khủng khiếp, được kết xuất không đúng trong các chương trình Java như jabrefrubymine. Điều này có thể được khắc phục bằng cách chạy

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

Tôi hiểu rằng tôi có thể xuất các tùy chọn Java này dưới dạng các biến môi trường và khởi chạy các chương trình từ dòng lệnh. Tuy nhiên, có cách nào để thiết lập các tùy chọn này trên toàn cầu, để tất cả các chương trình Java nhận ra chúng, bất kể chúng được khởi chạy như thế nào?

Tôi cũng biết rằng tôi có thể sửa đổi tất cả các *.desktoptệp cho các chương trình Java của mình, nhưng tôi đang tìm kiếm một giải pháp toàn cầu.

Tôi đang sử dụng java-7-openjdktrên Arch Linux. (FWIW điều này đã từng ổn với cài đặt jre7-openjdk-headless-infinality đã bị phá vỡ .)


Đối với tôi nó chỉ hoạt động nếu tôi khởi chạy ứng dụng từ thiết bị đầu cuối, nếu tôi sử dụng trình khởi chạy ứng dụng từ bảng xfce hoặc nếu tôi sử dụng tập lệnh từ máy tính để bàn thì nó không nhận được bất kỳ tham số nào. Tại sao??

@MARCOFranciosi Tôi không biết. Việc này ổn với tôi. Bạn sẽ phải nhận xét về câu trả lời để người trả lời có thể trả lời, mặc dù tôi không chắc bạn đã có đủ đại diện chưa.
Sparhawk

Câu trả lời:


7

Bạn biết cách đặt biến trong trình bao, nhưng đối với bản ghi bạn có thể viết :

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

và tất cả các chương trình bạn bắt đầu từ phiên shell này sau đó sẽ có bộ biến.

Nếu bạn muốn nó được đặt cho mọi shell bạn bắt đầu sau đó, hãy thêm dòng đó vào ~/.profile. Trong trường hợp đó, nó sẽ áp dụng cho tất cả các shell trong tương lai mà bạn bắt đầu, nhưng không áp dụng bất kỳ shell nào hiện đang chạy.

.profileNhìn chung cũng sẽ hoạt động cho GUI, nhưng điều đó có thể bị phá vỡ bởi cấu hình hệ thống và cách bạn khởi động mọi thứ. Đây chỉ là cấu hình cho mỗi người dùng.


Nếu bạn muốn nó được đặt cho mọi người dùng mọi lúc, bạn có thể thêm một nhiệm vụ /etc/environment. Định dạng có một chút khác biệt ở đó: chỉ KEY=VALtrên các dòng riêng biệt, không có trích dẫn cần thiết và không có bất cứ điều gì khác.

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on

Điều này được phân tích cú pháp bởi các pam_envmô-đun. Cũng có một ~/.pam_environmenttệp cho mỗi người dùng , có tác dụng tương tự đối với chỉ một người dùng. Cả hai đều yêu cầu đăng xuất và đăng nhập lại để thay đổi có hiệu lực. Các biến sẽ được đặt cho mỗi phiên đăng nhập trong tương lai, cả ở bàn điều khiển và trong X.

Tương tự, bạn có thể tạo một tệp /etc/profile.dvới một exporttuyên bố trong đó và nó sẽ được tải vào mọi phiên trong tương lai bởi bất kỳ người dùng nào. Có khả năng sẽ có một số tệp có sẵn ở đó để mô hình hóa nó, nhưng chỉ cần exportdòng trên sẽ ổn.


Ngoài ra, bạn có thể thêm exportcâu lệnh trong ~/.xinitrc(nếu bạn sử dụng startx) ~/.xsession, hoặc ~/.xprofile. KDE cũng hỗ trợ một thư mục ~/.kde/envcó thể chứa nhiều tệp shell như bạn muốn, chứa các exportcâu lệnh như trên. Tôi có lẽ sẽ thích một trong những cách tiếp cận khác.


1
Câu trả lời chính xác. Rõ ràng và kỹ lưỡng. FWIW Tôi đã sử dụng /etc/environmenttùy chọn này, có vẻ hợp lý nhất với tôi.
Sparhawk
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.