Sự khác biệt giữa Java System.getProperty và System.getenv?

Su Khac Biet Giua Java System Getproperty Va System Getenv



Các ' System.getProperty() ” lấy các thuộc tính hệ thống cụ thể tương ứng với thời gian chạy Java hoặc cấu hình hệ thống. Nó cung cấp thông tin về môi trường Java và các hệ điều hành cho hệ thống mà nó đang được thực thi. Mặt khác, “ Hệ thống.getenv() ” truy cập các biến môi trường cụ thể được xác định trong môi trường HĐH. Nó chứa thông tin động về hệ thống và phiên người dùng hiện tại.

Blog này giải thích sự khác biệt giữa các phương thức System.getProperty() và System.getenv() của Java.

Phương thức System.getProperty() trong Java là gì?

Các ' System.getProperty() ” trả về giá trị được liên kết với thuộc tính hệ thống được cung cấp. Nó bao gồm một “ giá trị cốt lõi ” định dạng cặp, như chúng được xác định bởi quản trị viên hệ thống hoặc trong các tệp cấu hình. Thuộc tính có thể được thiết lập với sự trợ giúp của “ -D ” gắn cờ hoặc nếu không tìm thấy thuộc tính, dấu “ vô giá trị ” được trả lại. Các thuộc tính Hệ thống mặc định hoặc được sử dụng nhiều nhất cùng với mô tả của chúng được mô tả trong phần này liên kết .







Một số thuộc tính Hệ thống được sử dụng trong đoạn mã dưới đây:



Một số thuộc tính Hệ thống được sử dụng trong đoạn mã dưới đây:



lớp học cha mẹ {
//Khởi tạo phương thức điều khiển
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) {
Sợi dây tên tài khoản = Hệ thống. getProperty ( 'tên tài khoản' ) ;
Hệ thống. ngoài . bản in ( 'Tên người dùng sử dụng thuộc tính hệ thống:' + tên tài khoản ) ;

Sợi dây lớpPath = Hệ thống. getProperty ( 'java.class.path' ) ;
Hệ thống. ngoài . bản in ( 'Đường dẫn lớp hiện tại từ thư mục gốc:' + lớpPath ) ;

Hệ thống. ngoài . bản in ( 'Tài sản sai được sử dụng:' + Hệ thống. getProperty ( 'trang chủ' ) ) ;

Hệ thống. ngoài . bản in ( 'Thông tin Phiên bản JRE:' + Hệ thống. getProperty ( 'java.runtime.version' ) ) ;
Hệ thống. ngoài . bản in ( 'Kiến trúc của hệ điều hành hệ thống hiện tại:' + Hệ thống. getProperty ( 'os.arch' ) ) ;
}
}

Mô tả đoạn mã trên:





  • Đầu tiên, chủ sở hữu hoặc người dùng thực sự của hệ thống được truy xuất bằng cách chuyển “ tên tài khoản ” tài sản trong “ System.getProperty() ' phương pháp.
  • Tiếp theo, tài sản “ java.class.path ” được chuyển đến “ System.getProperty() ” để lấy đường dẫn của lớp hiện tại từ thư mục gốc.
  • Sau đó, thuộc tính sai của “ trang chủ ' được thông qua,
  • Các ' System.getProperty() ” phương pháp sẽ hiển thị “ vô giá trị ” chỉ ra rằng tài sản không tồn tại.
  • Theo cách tương tự, Phiên bản thời gian chạy Java và kiến ​​trúc hệ thống đang được truy xuất bằng cách chuyển “ java.runtime.version ' Và ' os.arch ', tương ứng.

Đầu ra hiển thị các giá trị cần thiết cho các thuộc tính hệ thống đã được truy xuất với sự trợ giúp của phương thức “System.getProperty()”.



Phương thức System.getenv() trong Java là gì?

Các ' Hệ thống.getenv() ” trả về giá trị tương ứng cho biến môi trường đã chỉ định. Các giá trị được trả về là động và vì chúng được đặt bởi hệ điều hành hệ thống hoặc bởi người dùng cho phiên hiện tại. Giống như phương thức “System.getProperty()” nếu không tìm thấy biến hoặc không chứa giá trị, thì “ vô giá trị ” được trả lại.

Chẳng hạn, hãy truy cập mã dưới đây:

lớp học lớp gốc {
//Khởi tạo phương thức điều khiển
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) {
Hệ thống. ngoài . bản in ( 'Truy xuất giá trị bằng phương thức System.getenv()' ) ;

Sợi dây đường dẫn tạm thời = Hệ thống. tenv ( 'NHIỆT ĐỘ' ) ;
Hệ thống. ngoài . bản in ( 'Đường dẫn cho thư mục tệp tạm thời là:' + đường dẫn tạm thời ) ;

Sợi dây hệ điều hành = Hệ thống. tenv ( 'NUMBER_OF_PROCESSORS' ) ;
Hệ thống. ngoài . bản in ( 'Số lượng bộ xử lý mà hệ thống chứa:' + hệ điều hành ) ;

Sợi dây thư mục cửa sổ = Hệ thống. tenv ( 'windir' ) ;
Hệ thống. ngoài . bản in ( 'Hiển thị đường dẫn gốc của hệ thống -' + thư mục cửa sổ ) ;
}
}

Giải thích về khối mã trên:

  • Đầu tiên, lớp được tạo với tên “ lớp gốc ' và ' Hệ thống.getenv() ” phương thức được sử dụng để trả về đường dẫn của thư mục tạm thời bằng cách chuyển “ NHIỆT ĐỘ ” như một giá trị.
  • Tiếp theo, số lượng bộ xử lý và thư mục Windows cho hệ thống được truy xuất bằng cách chuyển “ NUMBER_OF_PROCESSORS ' Và ' windir ” tương ứng với phương thức “System.getenv()”.

Sau khi tổng hợp:

Đầu ra xác nhận rằng các giá trị biến môi trường bắt buộc đã được truy xuất.

Sự khác biệt giữa Java System.getProperty và System.getenv

Sự khác biệt giữa các phương thức System.getProperty() và System.getenv() được mô tả trong bảng bên dưới:

Thuật ngữ System.getProperty() Hệ thống.getenv()
Mục đích Nó được sử dụng để truy xuất các thuộc tính hệ thống dành riêng cho JVM. Nó được sử dụng để truy xuất các biến môi trường dành riêng cho môi trường hệ điều hành.
Nguồn Thuộc tính hệ thống thường được đặt làm đối số dòng lệnh. Các biến môi trường được đặt trong môi trường HĐH.
Truy cập Nó có thể truy xuất cả thuộc tính hệ thống và biến môi trường. Nó chỉ có thể truy xuất các biến môi trường và nó yêu cầu các khóa cụ thể cho biến đó.
Cách sử dụng Nó thường được sử dụng để truy xuất thông tin về JVM, chẳng hạn như phiên bản Java. Nó thường được sử dụng để truy cập các cấu hình dành riêng cho môi trường hoặc thông tin nhạy cảm.
tính di động Nó độc lập với nền tảng và có thể được truy cập nhất quán trên các hệ điều hành khác nhau. Các biến có thể khác nhau giữa các hệ điều hành khác nhau và có thể có các hành vi khác nhau.

Phần kết luận

Các ' System.getProperty() ” có quyền truy cập vào các thuộc tính dành riêng cho Java và cấu hình hệ thống. Các ' Hệ thống.getenv() ” truy cập các biến môi trường được xác định trong hệ điều hành. Tuy nhiên, cả hai đều phù hợp để trả về thông tin liên quan đến hệ thống. Hơn nữa, chúng có cùng mục đích truy xuất thông tin về môi trường hệ thống, nhưng chúng hoạt động trên các bộ dữ liệu khác nhau.