Biến môi trường là gì?
Mọi ngôn ngữ lập trình máy tính đều chứa các biến và hằng phân bổ các vị trí bộ nhớ duy nhất, chứa thông tin sẽ được sử dụng bởi các chương trình. Giá trị hằng không thay đổi được nhưng giá trị của biến có thể thay đổi được. Biến môi trường là cặp khóa/giá trị có giá trị được đặt bên ngoài chương trình và tham chiếu của chúng luôn có sẵn cho chương trình bất kỳ lúc nào. Cả khóa và giá trị đều là chuỗi. Các quy ước để thiết lập và sử dụng các biến môi trường luôn khác nhau giữa các hệ điều hành và trình thông dịch dòng lệnh. Chúng luôn có sẵn trên toàn cầu cho mọi ứng dụng đang chạy trên hệ thống.Ví dụ
PATH = "C:\\WINDOWS\system32;"
Ở đây, Path là biến môi trường được đặt bên ngoài chương trình nhưng có sẵn cho từng chương trình chạy trên windows.
Trường hợp sử dụng
Như chúng ta đã biết, mọi thay đổi trong chương trình cần được thực thi hoặc triển khai lại cho máy chủ, điều này có thể tạo ra các tác dụng phụ không mong muốn trong quá trình sản xuất. Vì vậy, mục đích chính của việc giới thiệu các biến môi trường là để hạn chế việc thực thi và triển khai này lặp đi lặp lại.Cách lấy các biến môi trường trong Java?
Hãy xem cách lấy biến môi trường trong java. Java cung cấp cho chúng ta 2 cách để lấy biến môi trường trong chương trình Java.-
Hệ thống.getenv()
-
System.getProperty()
Hệ thống.getenv()
Phương thức System.getenv() được sử dụng để tìm nạp tất cả các biến môi trường nhưng nếu một tên khóa cụ thể được cung cấp làm tham số thì nó sẽ tìm nạp giá trị của nó. java.lang.System.getenv() luôn trả về bản đồ chuỗi của tất cả các biến môi trường có sẵn.Tuyên ngôn
public static String getenv(String name)
Ở đây, tên là tham số được sử dụng để chỉ định khóa mà chúng ta cần giá trị.
Trở lại
Nó sẽ trả về giá trị của khóa hoặc null nếu tham số được cung cấp không được liên kết với bất kỳ khóa nào. Nếu tham số không được truyền thì nó sẽ trả về tất cả các cặp khóa/giá trị có sẵn.Ví dụ
import java.util.Map;
public class SystemGetEnvDemo {
public static void main(String[] args) {
// getting value for environment variable "PATH"
System.out.print("System.getenv(PATH) = ");
System.out.println(System.getenv("PATH"));
// getting value for environment variable "TEMP" resulting in null
System.out.print("System.getenv(TEMP) = ");
System.out.println(System.getenv("TEMP"));
//getting all environment variables using System.getenv()
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));
}
}
}
đầu ra
System.getenv(PATH) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
System.getenv(TEMP) = null
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PROGRAMIZ_COMPILER_SERVICE_HOST=10.0.10.151
KUBERNETES_PORT=tcp://10.0.0.1:443
PROGRAMIZ_COMPILER_PORT=tcp://10.0.10.151:80
TERM=xterm
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=10.0.0.1
PS1=
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PORT=80
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_ADDR=10.0.14.233
PROGRAMIZ_COMPILER_PORT_80_TCP=tcp://10.0.10.151:80
PROGRAMIZ_COMPILER_PORT_80_TCP_PROTO=tcp
PWD=/app
KUBERNETES_PORT_443_TCP=tcp://10.0.0.1:443
PROGRAMIZ_COMPILER_PORT_80_TCP_ADDR=10.0.10.151
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT=tcp://10.0.14.233:80
KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_SERVICE_HOST=10.0.14.233
PROGRAMIZ_COMPILER_PORT_80_TCP_PORT=80
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT=443
PROGRAMIZ_COMPILER_SERVICE_PORT=80
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP=tcp://10.0.14.233:80
PROGRAMIZ_COMPILER_WEB_UI_SEVICE_SERVICE_PORT=80
HOSTNAME=programiz-compiler-deployment-58bfd77477-dtlq8
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
HOME=/home/compiler
Bạn có thể nhận được kết quả đầu ra khác nhau tùy thuộc vào hệ điều hành của bạn.
System.getProperty()
Chúng ta cũng có thể sử dụng java.lang.System.getProperty() trong Java để truy xuất giá trị cho khóa đã chỉ định được truyền dưới dạng tham số cho phương thức này. Phương pháp này được sử dụng để truy xuất các thuộc tính hệ thống, tức là thông tin về hệ thống cục bộ và các cấu hình. Nếu biến môi trường xuất hiện dưới dạng thuộc tính hệ thống trong java thì tốt hơn là sử dụng System.getProperty() để nhận giá trị theo cách độc lập với nền tảng. Giá trị cho các thuộc tính có thể được thay đổi trong thời gian chạy nhưng không phải trường hợp với các biến môi trường.Tuyên ngôn
public String getProperty(String name)
Ở đây, tên là tham số được sử dụng để chỉ định khóa mà chúng ta cần giá trị.
Trở lại
Nó sẽ trả về giá trị của khóa hoặc null.Ví dụ
import java.lang.*;
import java.util.Properties;
public class SystemGetPropertyDemo {
public static void main(String[] args)
{
// getting username system property
// using System.getProperty in Java
System.out.println("user.name: " + System.getProperty("user.name"));
// getting property with key home resulting in null
// calling system.getproperty()
System.out.println("home: " + System.getProperty("home"));
// getting name of Operating System
System.out.println("os.name: " + System.getProperty("os.name"));
}
}
đầu ra
user.name: trình biên dịch
home: null
os.name: Linux
GO TO FULL VERSION