CodeGym /Java блог /Случаен /Вземете променливи на средата в Java
John Squirrels
Ниво
San Francisco

Вземете променливи на средата в Java

Публикувано в групата

Какво представляват променливите на средата?

Всеки език за компютърно програмиране съдържа променливи и константи, които разпределят уникални места в паметта, съдържащи информация, която да се използва от програмите. Константните стойности не могат да се променят, но стойността на променливата може да се променя. Променливите на средата са двойката ключ/стойност, чиято стойност е зададена извън програмата и тяхната препратка е винаги достъпна за програмата по всяко време. И ключът, и стойността са низове. Конвенциите за настройка и използване на променливи на средата винаги се различават между операционните системи и интерпретаторите на командния ред. Те винаги са глобално достъпни за всяко приложение, работещо в системата.

Пример


PATH = "C:\\WINDOWS\system32;"
Тук Path е променливата на средата, зададена извън програмата, но достъпна за всяка програма, работеща на Windows.

Случай на употреба

Както знаем, всяка промяна в програмата трябва да бъде изпълнена or преразположена на сървъра, което може да доведе до нежелани странични ефекти в производството. Така че основната цел на въвеждането на променливи на средата е да се ограничи това изпълнение и внедряване отново и отново.

Как да получите променливи на средата в Java?

Нека да видим How да получите променливи на средата в java. Java ни предоставя 2 начина за получаване на променливи на средата в програмата Java.
  1. System.getenv()

  2. System.getProperty()

Сега нека разгледаме и двете в детайли един по един.

System.getenv()

Методът System.getenv() се използва за извличане на всички променливи на средата, но ако конкретно име на ключ е предоставено като параметър, тогава той ще извлече неговата стойност. java.lang.System.getenv() винаги връща картата на низовете на всички налични променливи на средата.

Декларация


public static String getenv(String name)
Тук името е параметърът, използван за указване на ключа, спрямо който ни трябва стойността.

Връщане

Той ще върне стойността на ключа or нула, ако предоставеният параметър не е свързан с ниHowъв ключ. Ако параметърът не бъде предаден, той ще върне всички налични двойки ключ/стойност.

Пример


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));
        }
   }
}

Изход

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_SE RVICE_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
Може да получите различен резултат в зависимост от вашата операционна система.

System.getProperty()

Можем също да използваме java.lang.System.getProperty() в Java, за да извлечем стойността за посочения ключ, подаден като параметър на този метод. Този метод се използва за извличане на свойствата на системата, т.е. информация за локалната система и конфигурации. Ако променливата на средата присъства като системно свойство в java, тогава е по-добре да използвате System.getProperty() за получаване на стойност по независим от платформата начин. Стойността на свойствата може да се променя по време на изпълнение, но не и при променливите на средата.

Декларация


public String getProperty(String name)
Тук името е параметърът, използван за указване на ключа, спрямо който ни трябва стойността.

Връщане

Той ще върне стойността на ключа or нула.

Пример


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")); 
    }
}

Изход

user.name: компилатор home: null os.name: Linux

Заключение

Надяваме се вече да сте разбрали Howво представляват и How да получите променливи на средата в java, тяхната цел и How да използвате методите, за да ги получите. Чувствайте се свободни да практикувате и да се връщате, когато имате нужда от повече помощ. Приятно учене!
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION