CodeGym /مدونة جافا /Random-AR /الحصول على متغيرات البيئة في جافا
John Squirrels
مستوى
San Francisco

الحصول على متغيرات البيئة في جافا

نشرت في المجموعة

ما هي متغيرات البيئة؟

تحتوي كل لغة برمجة كمبيوتر على متغيرات وثوابت تقوم بتخصيص مواقع فريدة للذاكرة، وتحتوي على المعلومات التي ستستخدمها البرامج. القيم الثابتة غير قابلة للتغيير ولكن يمكن تغيير قيمة المتغير. متغيرات البيئة هي زوج المفتاح/القيمة الذي يتم تعيين قيمته خارج البرنامج ويكون مرجعها متاحًا دائمًا للبرنامج في أي وقت. كل من المفتاح والقيمة عبارة عن سلاسل. تختلف دائمًا اصطلاحات إعداد متغيرات البيئة واستخدامها بين أنظمة التشغيل ومترجمي سطر الأوامر. وهي متاحة دائمًا عالميًا لكل تطبيق يعمل على النظام.

مثال

PATH = "C:\\WINDOWS\system32;"
هنا، Path هو متغير البيئة الذي تم تعيينه خارج البرنامج ولكنه متاح لكل برنامج يعمل على Windows.

حالة الاستخدام

كما نعلم، يجب تنفيذ كل تغيير في البرنامج أو إعادة نشره على الخادم مما قد يؤدي إلى آثار جانبية غير مرغوب فيها في الإنتاج. لذا فإن الغرض الرئيسي من إدخال متغيرات البيئة هو تقييد هذا التنفيذ والنشر مرارًا وتكرارًا.

كيفية الحصول على متغيرات البيئة في جافا؟

دعونا نرى كيفية الحصول على متغيرات البيئة في Java. توفر لنا Java طريقتين للحصول على متغيرات البيئة في برنامج Java.
  1. System.getenv()

  2. System.getProperty()

الآن دعونا نرى كل منهما بالتفصيل واحدا تلو الآخر.

System.getenv()

يتم استخدام الأسلوب System.getenv() لجلب كافة متغيرات البيئة ولكن إذا تم توفير اسم مفتاح محدد كمعلمة فإنه سيتم جلب قيمته. تقوم java.lang.System.getenv() دائمًا بإرجاع خريطة السلسلة لجميع متغيرات البيئة المتاحة.

تصريح

public static String getenv(String name)
هنا، name هو المعلمة المستخدمة لتحديد المفتاح الذي نحتاج إلى القيمة مقابله.

يعود

سيُرجع قيمة المفتاح أو قيمة فارغة إذا لم تكن المعلمة المقدمة مرتبطة بأي مفتاح. إذا لم يتم تمرير المعلمة، فسوف تقوم بإرجاع جميع أزواج المفاتيح/القيم المتاحة.

مثال

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_SER VICE_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= تكب://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)
هنا، name هو المعلمة المستخدمة لتحديد المفتاح الذي نحتاج إلى القيمة مقابله.

يعود

سيعود قيمة المفتاح أو فارغة.

مثال

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

انتاج |

اسم المستخدم: الصفحة الرئيسية للمترجم: null os.name: Linux

خاتمة

نأمل أن تكون قد فهمت الآن ماهية متغيرات البيئة في جافا وكيفية الحصول عليها والغرض منها وكيفية استخدام الطرق للحصول عليها. لا تتردد في التدرب والعودة عندما تحتاج إلى مزيد من المساعدة. تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION