আমি জাভাতে সিস্টেমের পরিবর্তনশীল মান কীভাবে পেতে পারি?


169

সিস্টেমের পরিবর্তনশীল মান যা আমি উপস্থিত তা কীভাবে পাব

MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables

জাভাতে?

সম্পাদন করা

আমি System.getenv()পদ্ধতি ব্যবহার করেছি ।

এটা আমি মুদ্রণ মান হয়

System.out.println(System.getenv("JAVA_HOME"));

nullআমার দ্বারা নির্মিত সিস্টেম ভেরিয়েবলের জন্য যদি আমি একই চেষ্টা করি তবে এটির মান দেখাচ্ছে

System.out.println(System.getenv("DBE"));

5
আপনি অনুরোধ প্রক্রিয়াটি পুনরায় চালু করার চেষ্টা করতে পারেন (আমার ক্ষেত্রে নেটবিয়ানস)।
কোটোডিড

3
আমি দেখেছি যে গ্রহন থেকে পুনঃসূচনা বিকল্পটি কাজ করে না। কেবল অ্যাপ্লিকেশনটি বন্ধ করুন এবং এটি আবার শুরু করুন।
ইয়াসিন

1
ইন্টেলিজি পুনরায় চালু করা আমার সমস্যার সমাধান করেছে।
ভূষণ কর্মারকার

সিস্টেমটি পুনরায় আরম্ভ করা আমার পক্ষে কাজ করেছে, হতে পারে জেভিএম প্রথম শুরুতে মানগুলির ক্যাশে রাখে যার কারণে নতুন ভেরিয়েবলগুলি সনাক্ত করা যায় না।
সুমিতকানোজে

উত্তর:



52

স্পষ্ট করার জন্য, সিস্টেম ভেরিয়েবলগুলি পরিবেশের ভেরিয়েবলগুলির সমান। ব্যবহারকারী পরিবেশের ভেরিয়েবলগুলি প্রতি ব্যবহারকারী সেট করা থাকে এবং যখনই কোনও পৃথক ব্যবহারকারী লগইন করে থাকে সে ক্ষেত্রে পৃথক হয় System

সিস্টেম ওয়াইড ভেরিয়েবলের বর্তমান মান বা জাভাতে ব্যবহারকারী ভেরিয়েবল অ্যাক্সেস করতে নীচে দেখুন:

String javaHome = System.getenv("JAVA_HOME");

পরিবেশের ভেরিয়েবল সম্পর্কিত আরও তথ্যের জন্য এই উইকিপিডিয়া পৃষ্ঠাটি দেখুন

এছাড়াও আপনি যে পরিবেশের পরিবর্তনশীলটি পড়ার চেষ্টা করছেন সেটি জাভা চালিয়ে যাওয়ার আগে যথাযথভাবে সেট করা আছে তা নিশ্চিত করুন:

echo %MYENVVAR%

আপনার পরিবেশের পরিবর্তনশীলটির মান দেখতে হবে। যদি তা না হয় তবে আপনার শেলটি (ডস) আবার খুলতে বা লগ অফ করে আবার লগ ইন করতে হবে।


হাই .. আমি System.getenv () পদ্ধতি ব্যবহার করেছি .. যদি আমি "System.out.println (System.getenv (" JAVA_HOME ")) দিই তবে এর প্রিন্টিংয়ের মান;" এবং যদি এটি আমার দ্বারা নির্মিত সিস্টেমের ভেরিয়েবল দেয় ("System.out.println (System.getenv (" DBE ")); এটির নাল মানটি দেখায়;"
রাজা

3
getenvgetEnvডান পরিবর্তে ছোট ক্ষেত্রে করা উচিত ?
প্রতীক খাদলোয়া

1
আমি যদি echo %var%এটি প্রিন্ট করি %var%। যদি আমি পরিবর্তে চেষ্টা করি তবে echo $varএটি কাজ করে এবং সেই এনভির ভেরিয়েবলের মান প্রদর্শন করে। আমার getenvশূন্য ফিরে আসছে।
ডায়ালেক্স

3
%var%উইন্ডোজের $varজন্য ইউনিক্স / লিনাক্স / ম্যাকোস সিস্টেমের জন্য @ ডায়ালাক্স ব্যবহৃত হয় ।
আল-মোতাফার

27

সিস্টেম / এনভায়রনমেন্ট প্রপার্টি পাওয়ার সময় কিছু আগ্রহের বিবরণ রয়েছে।

প্রথমে, System.getenv(String)ওয়ে-ব্যাক-কখন চালু হয়েছিল, তারপরে হ্রাস পেয়েছে। অবমূল্যায়ন (বোকামিহীনভাবে, আইএইচএমও) জেএসই ১.৪ এ পুরোপুরি চালিয়ে গেছে ।

এটি জেএসই 5-এ পুনরায় চালু হয়েছিল

এগুলি উইন্ডোজের এনভায়রনমেন্ট ভেরিয়েবল প্যানেল ব্যবহার করে সেট করা আছে। আপনার বর্তমান ভিএম বন্ধ না হওয়া পর্যন্ত ভেরিয়েবলগুলির পরিবর্তনগুলি গ্রহণ না করা হতে পারে এবং সিএমডি.এক্সেক্স উদাহরণটি প্রস্থান না হওয়া পর্যন্ত।

পরিবেশগত বৈশিষ্ট্যগুলির বিপরীতে, জাভাতে জাভা সিস্টেমের বৈশিষ্ট্যও রয়েছে, যার মাধ্যমে এটি অ্যাক্সেসযোগ্য System.getProperties()। এই ভেরিয়েবলগুলি শুরু করা যেতে পারে যখন ভিএম সিরিজ কমান্ড লাইন আর্গুমেন্ট ব্যবহার করে শুরু করা হয় । উদাহরণস্বরূপ, বৈশিষ্ট্যের জন্য মানগুলি এবং নীচের কমান্ডে সেট করা থাকে:-Dname=valuemaxInMemorypagingDirectory

সি: \> java.exe -DmaxInMemory = 100M -DapagingDirectory = c: \ temp -jar myapp.jar

সুরক্ষা নীতি সীমাবদ্ধতাগুলি বাদ দিয়ে এই বৈশিষ্ট্যগুলি রানটাইমে সংশোধন করা যেতে পারে।


19

প্রকৃতপক্ষে ভেরিয়েবল সেট করা যেতে পারে বা না, সুতরাং, জাভা 8 বা এর চেয়ে উচ্চতর ক্ষেত্রে এর শূন্য মানটি কোনও Optionalবস্তুতে আবৃত করা উচিত , যা সত্যই ভাল বৈশিষ্ট্যগুলির অনুমতি দেয়। নিম্নলিখিত উদাহরণে আমরা ভেরিয়েবলটি পাওয়ার চেষ্টা করব ENV_VAR1, যদি এটি না থাকে তবে আমরা এটি সম্পর্কে সতর্ক করার জন্য কিছু কাস্টম ব্যতিক্রম ছুঁড়ে দিতে পারি:

String ENV_VAR1 = Optional.ofNullable(System.getenv("ENV_VAR1")).orElseThrow(
  () -> new CustomException("ENV_VAR1 is not set in the environment"));

5

গুগেন জেটেনভ () যাচাই করতে বলেছে :

বর্তমান সিস্টেমের পরিবেশের একটি অবিশ্বাস্য স্ট্রিং মানচিত্রের দর্শন দেয়।

আমি নিশ্চিত না যে সিস্টেমের ভেরিয়েবলগুলি পরিবেশের ভেরিয়েবল থেকে কীভাবে আলাদা হয়, তবে আপনি যদি স্পষ্ট করে বলতে পারতেন তবে আমি আরও সাহায্য করতে পারি।


আমি মনে করি রাজা মানে "সিস্টেম-ওয়াইড" "প্রতি ব্যবহারকারী" পরিবেশের ভেরিয়েবলের বিপরীতে।
রব

3

আপনি পরিবেশ পরিবর্তনশীল সেট করার পর থেকে আপনি কি রিবুট করার চেষ্টা করেছেন?

এটি প্রদর্শিত হয় যে উইন্ডোজ কোনও প্রকারের ক্যাশে পরিবেশের পরিবর্তনশীল রাখে এবং তা রিফ্রেশ করার জন্য রিবুট করা একটি পদ্ধতি is আমি নিশ্চিত নই তবে ভিন্ন পদ্ধতি থাকতে পারে তবে আপনি যদি আপনার পরিবর্তনশীল মানটি প্রায়শই পরিবর্তন করতে যাচ্ছেন না তবে এটি যথেষ্ট ভাল হতে পারে।


3

উপরের সমবডি দ্বারা উল্লিখিত হিসাবে, পুনরায় সূচনা গ্রহটি ব্যবহারকারীর সংজ্ঞায়িত পরিবেশ পরিবর্তনশীলের জন্য আমার পক্ষে কাজ করেছিল। আমি গ্রহন আইডিটি পুনরায় চালু করার পরে, System.getenv()আমার পরিবেশের পরিবর্তনশীলকে তুলে নিচ্ছি।


0

আপনি কি একটি লিনাক্স সিস্টেমে আছেন? যদি তা নিশ্চিত হন তবে আপনি আপনার পরিবর্তনশীল রফতানি করছেন।

myVar=testvalue; export myVar

আমি বিশ্বব্যাপী মান সংজ্ঞায়িত করতে রফতানি ব্যবহার না করা হলে আমি নালু হয়ে যাব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.