কম্পিউটার

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

জাভা রানটাইম এনভায়রনমেন্ট (JRE) বিভিন্ন এন্টারপ্রাইজ জাভা অ্যাপ চালানোর জন্য ব্যবহারকারীর কম্পিউটারে ব্যাপকভাবে ব্যবহৃত হয়। যাইহোক, কিছু অ্যাপের নির্দিষ্ট জাভা সংস্করণ প্রয়োজন এবং অন্য সংস্করণে ভুলভাবে কাজ করতে পারে। এই নিবন্ধে আমরা আলোচনা করব কিভাবে আপনার নেটওয়ার্কের কম্পিউটারে ইনস্টল করা জাভা সংস্করণগুলি পরীক্ষা করা যায় এবং কিভাবে PowerShell ব্যবহার করে JRE আনইনস্টল বা আপডেট করা যায়।

উইন্ডোজে জাভা ভার্সন কিভাবে চেক করবেন?

আপনি java লিখলে আপনি আপনার কম্পিউটারে ইনস্টল করা Java এর সংস্করণ নম্বর পেতে পারেন Windows 10 সার্চ বক্সে এবং Java অ্যাপলেট চালান।

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

জাভা সম্পর্কে উইন্ডো, বর্তমান JRE সংস্করণ নির্দিষ্ট করা হয়েছে। আমার ক্ষেত্রে, এটি হল Java Version 8 Update 261 (build 1.8.0_261-b12) . JRE বিল্ডের মান নোট করুন। সমস্ত জাভা সংস্করণে 1 আছে শুরুতে প্রধান JRE সংস্করণের সংখ্যা অনুসরণ করে (এটি 8 আমার ক্ষেত্রে) এবং আপডেট নম্বর।

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

আপনি উইন্ডোজ প্রোগ্রাম এবং বৈশিষ্ট্যগুলিতে বর্তমান জাভা সংস্করণটিও পরীক্ষা করতে পারেন (Win+R -> appwiz.cpl )।

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

আপনি কমান্ড প্রম্পটে বর্তমান জাভা সংস্করণ প্রদর্শন করতে পারেন। cmd.exe চালান এবং কমান্ড চালান:

java -version

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) Client VM (build 25.261-b12, mixed mode, sharing)

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

PowerShell ব্যবহার করে জাভা সংস্করণ পরীক্ষা করুন

আপনি PowerShell ব্যবহার করে আপনার কম্পিউটারে ইনস্টল করা জাভা সংস্করণ পরীক্ষা করতে পারেন। আপনি শুধু এক্সিকিউটেবল ফাইল java.exe এর সংস্করণটি পরীক্ষা করতে পারেন (যখন আপনার কম্পিউটারে JRE SE ইন্সটল করা হয় তখন এটির পথ পরিবেশ ভেরিয়েবলে সেট করা হয়)। জাভা ফাইল সংস্করণ প্রদর্শন করুন:

Get-Command Java | Select-Object Version নির্বাচন করুন

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

আপনি জাভা সংস্করণ, আপডেট এবং প্রকাশ নম্বর সম্পর্কে বিস্তারিত তথ্য দেখতে পারেন:

Get-Command java | Select-Object -ExpandProperty Version

Major Minor Build Revision
----- ----- ----- --------
8 0 2610 12

আপনি যদি স্ক্রিপ্টগুলিতে ব্যবহার করার জন্য আপনার জাভা সংস্করণের একটি স্ট্রিং মান পেতে চান তবে কমান্ডটি ব্যবহার করুন:

(Get-Command java | Select-Object -ExpandProperty Version).tostring()

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

এছাড়াও আপনি WMI ক্লাস Win32_Product এর মাধ্যমে আপনার জাভা সংস্করণ খুঁজে পেতে পারেন (উইন্ডোজে ইনস্টল করা প্রোগ্রামগুলির তালিকা রয়েছে):

Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

IdentifyingNumber : {26A24AE4-039D-4CA4-87B4-2F32180261F0}
Name : Java 8 Update 261
Vendor : Oracle Corporation
Version : 8.0.2610.12
Caption : Java 8 Update 261

IdentifyingNumber : {4A03706F-666A-4037-7777-5F2748764D10}
Name : Java Auto Updater
Vendor : Oracle Corporation
Version : 2.8.261.12
Caption : Java Auto Updater

সঠিকভাবে JRE আনইনস্টল করতে পরবর্তীতে আইডি ব্যবহার করা হতে পারে।

আপনি যদি জাভা অটো আপডেটার ছাড়া শুধুমাত্র জাভা সংস্করণ প্রদর্শন করতে চান তবে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%' and not Name like '%Java Auto Updater%'" | Select -Expand Version নির্বাচন করুন

PowerShell – দূরবর্তী কম্পিউটারে জাভা সংস্করণ পরীক্ষা করুন

আপনি যদি আপনার ডোমেনের সমস্ত কম্পিউটার বা সার্ভারে জাভা সংস্করণগুলি ব্যবহার করতে চান তবে আপনি নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি ব্যবহার করতে পারেন। আপনি ম্যানুয়ালি বা একটি টেক্সট ফাইল থেকে যে তালিকা লিখবেন সেই তালিকা অনুযায়ী স্ক্রিপ্টটি দূরবর্তীভাবে সমস্ত সার্ভার থেকে তথ্য পেতে পারে। এছাড়াও আপনি RSAT-AD-PowerShell মডিউল থেকে Get-ADComputer cmdlet ব্যবহার করে AD-তে সার্ভার বা কম্পিউটারের তালিকা পেতে পারেন।
# PowerShell script to check Java SE (JRE) version on remote computers
# To check Java version on the computers in the list
# $computers = @('mun-sql01,mun-fs01,mun-sql02')
# Check Java version against the list of servers in a text file
#$computers=Get-content C:\PS\ServerList.txt
# To get Java version on all Windows Servers in AD domain
$computers = ((get-adcomputer -Filter { enabled -eq “true” -and OperatingSystem -Like ‘*Windows Server*’ }).name).tostring()
Get-WmiObject  -Class Win32_Product -ComputerName $computers -Filter “Name like ‘%Java%’ and not Name like ‘%Java Auto Updater%'” | Select __Server, Version
নির্বাচন করুন

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

ফলস্বরূপ, আপনার কাছে কম্পিউটার/সার্ভার এবং জাভা সংস্করণ ইনস্টল করা তালিকা সহ একটি টেবিল থাকবে।

আমার ক্ষেত্রে, ডোমেন কম্পিউটারে জাভা সংস্করণ পরীক্ষা করার সময়, আমি 24 টি ভিন্ন JRE সংস্করণ খুঁজে পেয়েছি!!!

সমস্ত জাভা সংস্করণ আনইনস্টল করার জন্য পাওয়ারশেল স্ক্রিপ্ট

কেন আপনাকে উইন্ডোজের পূর্ববর্তী জাভা সংস্করণগুলি আনইনস্টল করতে হবে?

  • আপনি একটি নতুন জাভা সংস্করণ ইনস্টল করার আগে, আগের সমস্ত সংস্করণগুলি আনইনস্টল করা ভাল৷ অন্যান্য পণ্যের মত, নতুন বৈশিষ্ট্য উপস্থিত হয় এবং সমালোচনামূলক শোষণ ক্রমাগত জাভা স্থির করা হয়. আপনার কাছে Java এর পুরানো সংস্করণ ইনস্টল থাকলে, আপনার কম্পিউটার পরিচিত বা 0-দিনের দুর্বলতার সংক্রমণ বা শোষণের বিষয়। জাভা একটি অন্তর্নির্মিত স্বয়ংক্রিয় আপডেট প্রক্রিয়া আছে, কিন্তু বিভিন্ন কারণে প্রশাসকরা ডোমেন কম্পিউটারে এটি নিষ্ক্রিয় করতে পারে৷
  • আপনার কোন প্রদত্ত জাভা JRE সাবস্ক্রিপশন নেই। 2019 সালে, ওরাকল জাভা লাইসেন্সিং নীতি পরিবর্তন করেছে। আপনি যদি পূর্ববর্তী Oracle JDK (Java SE) সংস্করণগুলি ব্যবহার করতে চান তবে আপনাকে অবশ্যই একটি অর্থপ্রদানের সদস্যতা পেতে হবে। এটি এপ্রিল, 16, 2019 (জাভা 8 SE আপডেট 211 থেকে) এর পরের সমস্ত Java JRE রিলিজকে বোঝায়।
    বাণিজ্যিক Java SE সংস্করণগুলির একটি দীর্ঘ সময়ের সমর্থন রয়েছে (রিলিজের তারিখ থেকে 5 বছর ধরে আপডেটগুলি প্রকাশিত হয়)। একটি বিনামূল্যের জাভা সংস্করণ হল ওপেন JDK (GPL এর অধীনে বিতরণ করা হয়েছে), কিন্তু আপনাকে প্রতি ছয় মাসে এটি আপডেট করতে হবে। আরেকটি ওপেন JDK  অসুবিধা হল যে এটিতে উইন্ডোজের জন্য একটি সুবিধাজনক ইনস্টলার নেই। আপনাকে অবশ্যই ওপেন জেডিকে ম্যানুয়ালি ডাউনলোড এবং ইনস্টল করতে হবে। Chocolatey প্যাকেজ ম্যানেজার ব্যবহার করে Open JDK ইনস্টল করার একটি চমৎকার বিকল্প রয়েছে:choco install openjdk

আপনি একটি স্থানীয় কম্পিউটারে সমস্ত ইনস্টল করা জাভা সংস্করণ সরাতে নিম্নলিখিত PowerShell স্ক্রিপ্ট ব্যবহার করতে পারেন:

$jre_installed = Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"
$jre_installed.Uninstall()

যাইহোক, উপরের আনইনস্টল কমান্ডটি WMI এর উপর ভিত্তি করে এবং ধীরে ধীরে কাজ করে।

পরিবর্তে, আপনি রেজিস্ট্রি থেকে ইনস্টল করা জাভা সংস্করণগুলির একটি তালিকা পেতে পারেন এবং MSI-এর মাধ্যমে সফ্টওয়্যার ইনস্টল করার সময় তাদের পণ্য GUID দ্বারা সমস্তগুলিকে আনইনস্টল করতে পারেন৷

#PowerShell script to uninstall all Java SE (JRE) versions on a computer
$uninstall32 = gci "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -like "*Java*" } | select UninstallString
$uninstall64 = gci "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -like "*Java*" } | select UninstallString
# Uninstall 64-bit Java versions
if ($uninstall64) {
$uninstall64 = $uninstall64.UninstallString -Replace "msiexec.exe", "" -Replace "/I", "" -Replace "/X", ""
$uninstall64 = $uninstall64.Trim()
Write "Uninstalling Java ..."
start-process "msiexec.exe" -arg "/X $uninstall64 /qb" -Wait
}
# Uninstall 32-bit Java versions
if ($uninstall32) {
$uninstall32 = $uninstall32.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
$uninstall32 = $uninstall32.Trim()
Write "Uninstalling all Java SE versions..."
start-process "msiexec.exe" -arg "/X $uninstall32 /qb" -Wait
}

কিভাবে PowerShell দিয়ে উইন্ডোজে জাভা সংস্করণ চেক বা আপডেট করবেন?

কিভাবে PowerShell ব্যবহার করে Java JRE ডাউনলোড এবং ইনস্টল করবেন?

নিম্নলিখিত PowerShell স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে অফিসিয়াল ওয়েবসাইট থেকে জাভা ইনস্টলারের সর্বশেষ সংস্করণ ডাউনলোড করে এবং এটি একটি কম্পিউটারে ইনস্টল করে (আপনি অনলাইন এবং অফলাইন উভয় ইনস্টলার ডাউনলোড করতে পারেন)। ইনস্টল কমান্ড রিবুট অনুরোধ দমন করে এবং স্বয়ংক্রিয় জাভা আপডেট নিষ্ক্রিয় করে।

ওয়েবসাইট থেকে একটি ইনস্টলার ফাইল ডাউনলোড করতে, Invoke-WebRequest cmdlet ব্যবহার করা হয়। যদি আপনার কম্পিউটার একটি প্রক্সির পিছনে থাকে, তাহলে একটি প্রক্সি সার্ভারের মাধ্যমে ইন্টারনেট অ্যাক্সেস করার জন্য আপনাকে PowerShell কনফিগার করুন৷

# PowerShell script to automatically download and install the latest Java SE (JRE) version
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Download an online Java installer
$URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % { [regex]::matches($_, '(?:<a title="Download Java software for Windows Online" href=")(.*)(?:">)').Groups[1].Value }
# Download an offline Java installer
#$URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % { [regex]::matches($_, '(?:<a title="Download Java software for Windows Offline" href=")(.*)(?:">)').Groups[1].Value }
Invoke-WebRequest -UseBasicParsing -OutFile jre8.exe $URL
Start-Process .\jre8.exe '/s REBOOT=0 SPONSORS=0 AUTO_UPDATE=0' -wait
echo $?

স্ক্রিপ্টের প্রথম লাইনটি TLS 1.2 ব্যবহার করার জন্য যোগ করা হয়েছিল। অন্যথায়, আমার নিম্নলিখিত ত্রুটি ছিল:

Invoke-WebRequest: The request was aborted: Could not create SSL/TLS secure channel.

স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে একটি জাভা ইনস্টলেশন ফাইল ডাউনলোড করবে, এটি একটি ডিস্কে jre8.exe হিসাবে সংরক্ষণ করবে এবং ইনস্টল করবে।

দুর্ভাগ্যবশত, ওরাকল ওয়েবসাইট থেকে JRE সেটআপ ফাইল পাওয়ার এই পদ্ধতিটি কয়েক সপ্তাহ আগে কাজ করা বন্ধ করে দিয়েছে। এখন এই ওয়েবপেজটি কিছু .js স্ক্রিপ্ট দ্বারা তৈরি করা হয়েছে। এবং আমি জাভা ইনস্টলারের লিঙ্ক পেতে পারি না। সম্ভবত ওরাকল শীঘ্রই এটি পরিবর্তন করবে।


  1. আপনি Windows 10 এর কোন সংস্করণটি চালাচ্ছেন? এখানে

  2. Windows 11 এ কিভাবে দ্রুত আপনার PowerShell সংস্করণ চেক করবেন

  3. Windows 11 এ Powershell কিভাবে আপডেট করবেন

  4. কিভাবে উইন্ডোজ 11 পিসি আপডেট করবেন