CodeGym /בלוג Java /Random-HE /קבל משתני סביבה ב-Java
John Squirrels
רָמָה
San Francisco

קבל משתני סביבה ב-Java

פורסם בקבוצה

מהם משתני סביבה?

כל שפת תכנות מחשב מכילה משתנים וקבועים שמקצים מיקומי זיכרון ייחודיים, המכילים מידע שישמש את התוכניות. ערכים קבועים אינם ניתנים לשינוי אך ניתן לשנות את ערך המשתנה. משתני סביבה הם צמד המפתח/ערך שהערך שלו מוגדר מחוץ לתוכנית וההתייחסות שלהם תמיד זמינה לתוכנית בכל עת. גם המפתח וגם הערך הם מחרוזות. המוסכמות להגדרה ולשימוש במשתני סביבה תמיד שונות בין מערכות הפעלה לבין מתורגמני שורת פקודה. הם תמיד זמינים ברחבי העולם לכל אפליקציה הפועלת במערכת.

דוגמא

PATH = "C:\\WINDOWS\system32;"
כאן, Path הוא משתנה הסביבה המוגדר מחוץ לתוכנית אך זמין לכל תוכנית הפועלת בחלונות.

Use Case

כידוע כל שינוי בתוכנית צריך להתבצע או לפרוס מחדש לשרת מה שעלול לייצר תופעות לוואי לא רצויות בייצור. אז המטרה העיקרית של הצגת משתני סביבה היא להגביל את הביצוע והפריסה הזו שוב ושוב.

כיצד להשיג משתני סביבה ב-Java?

בוא נראה איך להשיג משתני סביבה ב-java. Java מספקת לנו 2 דרכים לקבל משתני סביבה בתוכנת Java.
  1. System.getenv()

  2. System.getProperty()

עכשיו בואו נראה את שניהם בפירוט אחד אחד.

System.getenv()

השיטה System.getenv() משמשת כדי להביא את כל משתני הסביבה, אבל אם שם מפתח ספציפי מסופק כפרמטר אז הוא יביא את הערך שלו. java.lang.System.getenv() תמיד מחזירה את מפת המחרוזות של כל משתני הסביבה הזמינים.

הַצהָרָה

public static String getenv(String name)
כאן, שם הוא הפרמטר המשמש לציון המפתח שנגדו היינו צריכים את הערך.

לַחֲזוֹר

זה יחזיר את הערך של המפתח או null אם הפרמטר שסופק אינו משויך למפתח כלשהו. אם הפרמטר לא יועבר אז הוא יחזיר את כל צמדי המפתח/ערך הזמינים.

דוגמא

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=t.51p://10.0.10.1c. :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_80_0.0.0.1 _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_10.0p.://TCP=tc.0 :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_COMPILER_WEBICE_WEBIZ0=10.0.0.0. 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_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_PORT=443 PROGRAMIZ_COMPILER_SERVICE_PORT=80 PROGRAMIZ_COMPILER_0P: 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_COMPILER=443/HOMEPS=443
ייתכן שתקבל פלט שונה בהתאם למערכת ההפעלה שלך.

System.getProperty()

אנו יכולים גם להשתמש ב-java.lang.System.getProperty() ב-Java כדי לאחזר את הערך עבור המפתח שצוין שהועבר כפרמטר לשיטה זו. שיטה זו משמשת לאחזור מאפייני המערכת, כלומר מידע על המערכת המקומית ותצורות. אם משתנה הסביבה קיים כמאפיין מערכת ב-java אז עדיף להשתמש ב- System.getProperty() לקבלת ערך באופן בלתי תלוי בפלטפורמה. ניתן לשנות את הערך עבור מאפיינים בזמן הריצה, אך לא במקרה של משתני סביבה.

הַצהָרָה

public String getProperty(String name)
כאן, שם הוא הפרמטר המשמש לציון המפתח שנגדו היינו צריכים את הערך.

לַחֲזוֹר

זה יחזיר את הערך של המפתח או null.

דוגמא

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: בית מהדר: null os.name: Linux

סיכום

אנו מקווים שבינתיים אתה מבין מה הם ואיך להשיג משתני סביבה ב-java, מטרתם וכיצד להשתמש בשיטות כדי להשיג אותם. אל תהסס להתאמן ולחזור בכל פעם שתזדקק לסיוע נוסף. למידה מהנה!
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION