CodeGym /وبلاگ جاوا /Random-FA /دریافت متغیرهای محیطی در جاوا
John Squirrels
مرحله
San Francisco

دریافت متغیرهای محیطی در جاوا

در گروه منتشر شد

متغیرهای محیطی چیست؟

هر زبان برنامه نویسی کامپیوتری حاوی متغیرها و ثابت هایی است که مکان های حافظه منحصر به فردی را که حاوی اطلاعات مورد استفاده برنامه ها هستند، اختصاص می دهند. مقادیر ثابت قابل تغییر نیستند اما مقدار متغیر قابل تغییر است. متغیرهای محیطی جفت کلید/مقدار هستند که مقدار آنها خارج از برنامه تنظیم شده و مرجع آنها همیشه در هر زمانی در دسترس برنامه است. کلید و مقدار هر دو رشته هستند. قراردادهای تنظیم و استفاده از متغیرهای محیطی همیشه بین سیستم عامل ها و مفسرهای خط فرمان متفاوت است. آنها همیشه در سطح جهانی برای هر برنامه ای که روی سیستم اجرا می شود در دسترس هستند.

مثال

PATH = "C:\\WINDOWS\system32;"
در اینجا، Path متغیر محیطی است که خارج از برنامه تنظیم شده است، اما برای هر برنامه ای که در ویندوز اجرا می شود در دسترس است.

استفاده از مورد

همانطور که می دانیم هر تغییری در برنامه باید اجرا شود یا دوباره در سرور مستقر شود که ممکن است عوارض جانبی ناخواسته ای در تولید ایجاد کند. بنابراین هدف اصلی از معرفی متغیرهای محیطی محدود کردن این اجرا و استقرار بارها و بارها است.

چگونه متغیرهای محیطی را در جاوا بدست آوریم؟

بیایید ببینیم که چگونه متغیرهای محیطی را در جاوا بدست آوریم. جاوا 2 راه برای دریافت متغیرهای محیطی در برنامه جاوا در اختیار ما قرار می دهد.
  1. System.getenv()

  2. System.getProperty()

حالا بیایید هر دو را با جزئیات یکی یکی ببینیم.

System.getenv()

متد System.getenv() برای واکشی همه متغیرهای محیطی استفاده می شود، اما اگر یک نام کلید خاص به عنوان پارامتر ارائه شود، مقدار آن را واکشی می کند. java.lang.System.getenv() همیشه نقشه رشته ای از همه متغیرهای محیط موجود را برمی گرداند.

اعلام

public static String getenv(String name)
در اینجا، 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_SERVICE_HOST=10.0.10.151 KUBERNETES_PORT=tcp://10.0.0.1:443 PROGRAMIZ_COMPILER.10.10.1. :80 TERM=آینده‌مدت 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_PILER= PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_PORT_WE80_PILER _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_0.10.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_AMWEDRICE_COMPILER. 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_PORT_80_TCP_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_HTTPS/443 KUBERNETES_HTTPS/compiler=4
ممکن است بسته به سیستم عامل خود خروجی متفاوتی دریافت کنید.

System.getProperty()

همچنین می‌توانیم از java.lang.System.getProperty() در جاوا برای بازیابی مقدار کلید مشخص شده به عنوان پارامتر به این متد استفاده کنیم. این روش برای بازیابی ویژگی های سیستم، یعنی اطلاعات مربوط به سیستم محلی و تنظیمات استفاده می شود. اگر متغیر محیطی به عنوان ویژگی سیستم در جاوا وجود دارد، بهتر است از System.getProperty() برای دریافت مقدار به روشی مستقل از پلتفرم استفاده کنید. مقدار خواص را می توان در زمان اجرا تغییر داد اما در مورد متغیرهای محیطی اینطور نیست.

اعلام

public String getProperty(String name)
در اینجا، 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: لینوکس

نتیجه

امیدواریم تا کنون متوجه شده باشید که متغیرهای محیطی در جاوا چیست و چگونه می توان آنها را به دست آورد، هدف آنها و نحوه استفاده از روش ها برای دریافت آنها. با خیال راحت تمرین کنید و هر زمان که به کمک بیشتری نیاز داشتید برگردید. یادگیری مبارک!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION