2008-09-15 41 views
30

Khi tôi sử dụng ngôn ngữ mặc định java trên máy linux của mình, nó xuất hiện với cài đặt miền địa phương của Hoa Kỳ, tôi thay đổi điều này ở đâu để có ngôn ngữ chính xác?Cài đặt cài đặt miền địa phương java

+0

Phương thức Locale.getavailablelocale() không trả về en_MY, tại sao vậy? nó trả về 155 miền địa phương – VedX

+0

@kekan: Thử Locale.getDefault(); – user1283704

+0

Cảnh giác với [Java 7 thay đổi miền địa phương mặc định] (http://stackoverflow.com/questions/7107972/java-7-default-locale). – Vadzim

Trả lời

14

Tôi tin rằng java lướt qua điều này từ các biến môi trường mà nó đã được khởi chạy, vì vậy bạn sẽ cần đảm bảo các biến môi trường LANG và LC_ * của bạn được đặt một cách thích hợp.

Ngôn ngữ manpage có thông tin đầy đủ về các biến môi trường đã nói.

+0

Biến môi trường LC_ * là gì? – Leonel

+0

Nếu chương trình của bạn định dạng số, bạn có thể muốn đặt LC_ALL. Xem câu trả lời của tôi dưới đây. – cayhorstmann

+0

Lưu ý rằng điều này chưa hoàn chỉnh. Tôi đang chạy macOS Sierra và có LANG cũng như LC_ALL được đặt là "en_US.UTF8". Tuy nhiên, vì một lý do nào đó Java xuất hiện với 'user.language = en',' user.country = US' và 'user.country.format = DE'. – Gunnar

13

Bạn có thể gọi trong init hoặc bất kỳ Locale.setDefault() hoặc -Duser.language =, -Duser.country = và -Duser.variant = tại dòng lệnh. Here's something on Sun's site.

+1

Các ngôn ngữ được hỗ trợ được liệt kê tại http://www.oracle.com/technetwork/java/javase/locales-137662.html#translation – koppor

0

Một cách để kiểm soát cài đặt ngôn ngữ là đặt thuộc tính hệ thống java user.language và user.region.

40

Với các thuộc tính user.language, user.countryuser.variant.

Ví dụ:

java -Duser.language=th -Duser.country=TH -Duser.variant=TH SomeClass

+2

Điều này sẽ làm việc, nhưng nó an toàn hơn và tương lai hơn bằng chứng để thiết lập môi trường và để cho JRE tìm ra các giá trị chính xác cho chúng. – Air

1

Nếu bạn đang ở trên máy Mac, bạn chỉ cần sử dụng System Preferences -> Ngôn ngữ và kéo ngôn ngữ để kiểm tra đầu (trước khi tiếng Anh) sẽ đảm bảo lần sau khi bạn mở App , miền địa phương đúng được thử !!

17

Tôi đã phải kiểm soát điều này trong một tập lệnh chạy trên một máy tính bằng ngôn ngữ Pháp, nhưng một chương trình Java cụ thể phải chạy với en_. Như đã chỉ ra, các công việc sau:

java -Duser.language=en -Duser.country=US ... 

Ngoài ra,

LC_ALL=en_US.UTF-8 java ... 

tôi thích sau này.

2

Bạn có thể thay đổi trên giao diện điều khiển:

$ export LANG=en_US.utf8 
+0

Trước tiên, bạn cần phải viết 'utf-8' thay thế 'utf8'. Thứ hai, chỉ có phần mã hóa hoạt động, nhưng không phải là phần ngôn ngữ. –

+0

Cuối cùng! Tôi đã tìm kiếm một thời gian rất dài cho việc này !!! Cảm ơn bạn! –

9

Đối với các công cụ như jarsigner được thực hiện trong Java.

JAVA_TOOL_OPTIONS=-Duser.language=en jarsigner 
+2

Môi trường này hoạt động tốt hơn, chỉ cần thêm xuất JAVA_TOOL_OPTIONS = -Duser.language = vi vào ~/.profile –

+0

của bạn Xem http://stackoverflow.com/questions/28327620/difference-between-java-options-java-tool-options -và-java-opts/ – Vadzim

+0

Cuối cùng, đây là tùy chọn tôi muốn! java và javac dường như không tôn vinh LANG và LC_ALL. –

1

Trên Linux, tạo tập tin trong /etc/default/locale với các nội dung sau

LANG=en.utf8 

và sau đó sử dụng lệnh source để xuất khẩu biến này bằng cách chạy

source /etc/default/locale 

Lệnh nguồn đặt biến vĩnh viễn.

Các vấn đề liên quan