สภาพแวดล้อมรันไทม์ Java (JRE) ใช้กันอย่างแพร่หลายในคอมพิวเตอร์ของผู้ใช้เพื่อเรียกใช้แอป Java ขององค์กรต่างๆ อย่างไรก็ตาม แอพบางตัวต้องใช้ Java เวอร์ชันเฉพาะ และอาจทำงานไม่ถูกต้องในเวอร์ชันอื่น ในบทความนี้ เราจะพูดถึงวิธีตรวจสอบเวอร์ชัน Java ที่ติดตั้งบนคอมพิวเตอร์ในเครือข่ายของคุณ และวิธีถอนการติดตั้งหรืออัปเดต JRE โดยใช้ PowerShell
จะตรวจสอบเวอร์ชัน Java ใน Windows ได้อย่างไร
คุณสามารถติดตั้งหมายเลขเวอร์ชันของ Java บนคอมพิวเตอร์ของคุณได้หากคุณป้อน java
ในช่องค้นหาของ Windows 10 และเรียกใช้ Java applet
ใน เกี่ยวกับ Java หน้าต่างระบุเวอร์ชัน JRE ปัจจุบัน ในกรณีของฉัน มันคือ Java Version 8 Update 261 (build 1.8.0_261-b12)
. สังเกตค่าของการสร้าง JRE Java เวอร์ชันทั้งหมดมี 1 ในตอนต้นตามด้วยจำนวนของ JRE เวอร์ชันหลัก (คือ 8 ในกรณีของฉัน) และหมายเลขอัปเดต
คุณยังตรวจสอบเวอร์ชัน Java ปัจจุบันได้ในโปรแกรมและคุณลักษณะของ Windows (Win+R -> appwiz.cpl
)
คุณสามารถแสดงเวอร์ชัน Java ปัจจุบันได้ในพรอมต์คำสั่ง เรียกใช้ 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)
ตรวจสอบเวอร์ชัน Java โดยใช้ PowerShell
คุณสามารถตรวจสอบเวอร์ชัน Java ที่ติดตั้งบนคอมพิวเตอร์ของคุณโดยใช้ PowerShell คุณสามารถตรวจสอบเวอร์ชันของไฟล์ปฏิบัติการได้ java.exe
(เส้นทางไปยังมันถูกตั้งค่าในตัวแปรสภาพแวดล้อมเมื่อติดตั้ง JRE SE บนคอมพิวเตอร์ของคุณ) แสดงเวอร์ชันไฟล์จาวา:
Get-Command Java | Select-Object Version
คุณสามารถดูข้อมูลโดยละเอียดเกี่ยวกับเวอร์ชัน Java การอัปเดตและหมายเลขรุ่น:
Get-Command java | Select-Object -ExpandProperty Version
Major Minor Build Revision ----- ----- ----- -------- 8 0 2610 12
หากคุณต้องการรับค่าสตริงของเวอร์ชัน Java ของคุณเพื่อใช้ในสคริปต์ ให้ใช้คำสั่ง:
(Get-Command java | Select-Object -ExpandProperty Version).tostring()
คุณยังสามารถค้นหาเวอร์ชัน Java ของคุณผ่านคลาส WMI Win32_Product (ประกอบด้วยรายการโปรแกรมที่ติดตั้งใน Windows):
Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"
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 อย่างถูกต้อง
หากคุณต้องการแสดงเฉพาะเวอร์ชัน Java โดยไม่มี Java Auto Updater ให้ใช้คำสั่งต่อไปนี้:
Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%' and not Name like '%Java Auto Updater%'" | Select -Expand Version
PowerShell – ตรวจสอบเวอร์ชัน Java บนคอมพิวเตอร์ระยะไกล
หากคุณต้องการใช้ Java เวอร์ชันบนคอมพิวเตอร์หรือเซิร์ฟเวอร์ทุกเครื่องในโดเมนของคุณ คุณสามารถใช้สคริปต์ PowerShell ต่อไปนี้ สคริปต์สามารถรับข้อมูลจากเซิร์ฟเวอร์ทั้งหมดจากระยะไกลตามรายการที่คุณป้อนด้วยตนเองหรือจากไฟล์ข้อความ คุณยังรับรายการเซิร์ฟเวอร์หรือคอมพิวเตอร์ใน AD ได้โดยใช้ Get-ADComputer cmdlet จากโมดูล RSAT-AD-PowerShell# 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
ด้วยเหตุนี้ คุณจะมีตารางที่มีรายการคอมพิวเตอร์/เซิร์ฟเวอร์และเวอร์ชัน Java ติดตั้งอยู่
ในกรณีของฉัน เมื่อตรวจสอบเวอร์ชัน Java บนคอมพิวเตอร์โดเมน ฉันพบ JRE เวอร์ชันต่างๆ ถึง 24 เวอร์ชัน!!!สคริปต์ PowerShell เพื่อถอนการติดตั้ง Java เวอร์ชันทั้งหมด
ทำไมคุณอาจต้องถอนการติดตั้ง Java เวอร์ชันก่อนหน้าใน Windows
- ก่อนที่คุณจะติดตั้ง Java เวอร์ชันใหม่ จะดีกว่าที่จะถอนการติดตั้งเวอร์ชันก่อนหน้าทั้งหมด เช่นเดียวกับผลิตภัณฑ์อื่นๆ คุณลักษณะใหม่ปรากฏขึ้นและช่องโหว่ที่สำคัญได้รับการแก้ไขอย่างต่อเนื่องใน Java หากคุณติดตั้ง Java เวอร์ชันเก่า คอมพิวเตอร์ของคุณอาจติดไวรัสหรือหาประโยชน์จากช่องโหว่ที่รู้จักหรือ 0 วัน Java มีกลไกการอัปเดตอัตโนมัติในตัว แต่ด้วยเหตุผลต่างๆ ที่ผู้ดูแลระบบอาจปิดใช้งานบนคอมพิวเตอร์โดเมน
- คุณไม่มีการสมัครสมาชิก Java JRE แบบชำระเงิน ในปี 2019 Oracle ได้เปลี่ยนนโยบายการออกใบอนุญาต Java หากคุณต้องการใช้ Oracle JDK (Java SE) เวอร์ชันก่อนหน้า คุณต้องสมัครใช้งานแบบชำระเงิน หมายถึง Java JRE ที่เผยแพร่หลังจากวันที่ 16 เมษายน 2019 (จาก Java 8 SE Update 211)
เวอร์ชัน Java SE เชิงพาณิชย์มีการสนับสนุนเป็นเวลานาน (อัปเดตเผยแพร่เป็นเวลา 5 ปีนับตั้งแต่วันที่เผยแพร่) Java เวอร์ชันฟรีคือ Open JDK (เผยแพร่ภายใต้ GPL) แต่คุณต้องอัปเดตทุก ๆ หกเดือน อีก เปิด JDK ข้อเสียคือไม่มีตัวติดตั้งที่สะดวกสำหรับ Windows คุณต้องดาวน์โหลดและติดตั้ง Open JDK ด้วยตนเอง มีตัวเลือกที่ดีในการติดตั้ง Open JDK โดยใช้ตัวจัดการแพ็คเกจ Chocolatey:choco install openjdk
คุณสามารถใช้สคริปต์ PowerShell ต่อไปนี้เพื่อลบเวอร์ชัน Java ที่ติดตั้งทั้งหมดในเครื่องคอมพิวเตอร์:
$jre_installed = Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"
$jre_installed.Uninstall()
อย่างไรก็ตาม คำสั่งถอนการติดตั้งด้านบนใช้ WMI และทำงานช้า
คุณสามารถรับรายการเวอร์ชัน Java ที่ติดตั้งจากรีจิสทรีและถอนการติดตั้งทั้งหมดโดยใช้ GUID ผลิตภัณฑ์ที่สร้างขึ้นเมื่อคุณติดตั้งซอฟต์แวร์ผ่าน MSI
#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
}
จะดาวน์โหลดและติดตั้ง Java JRE โดยใช้ PowerShell ได้อย่างไร
สคริปต์ PowerShell ต่อไปนี้จะดาวน์โหลดตัวติดตั้ง Java เวอร์ชันล่าสุดโดยอัตโนมัติจากเว็บไซต์ทางการ และติดตั้งบนคอมพิวเตอร์ (คุณสามารถดาวน์โหลดตัวติดตั้งทั้งแบบออนไลน์และออฟไลน์) คำสั่งติดตั้งจะระงับคำขอรีบูตและปิดใช้งานการอัปเดต Java อัตโนมัติ
ในการดาวน์โหลดไฟล์ติดตั้งจากเว็บไซต์ จะใช้ cmdlet ของ Invoke-WebRequest หากคอมพิวเตอร์ของคุณใช้พร็อกซี่ ให้กำหนดค่า 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 $?
Invoke-WebRequest: The request was aborted: Could not create SSL/TLS secure channel.
สคริปต์จะดาวน์โหลดไฟล์การติดตั้ง Java โดยอัตโนมัติ บันทึกลงในดิสก์เป็น jre8.exe และติดตั้ง
ขออภัย วิธีการรับไฟล์ติดตั้ง JRE จากเว็บไซต์ Oracle หยุดทำงานเมื่อไม่กี่สัปดาห์ก่อน ตอนนี้หน้าเว็บนี้สร้างโดยสคริปต์ .js บางตัว และฉันไม่สามารถรับลิงก์ไปยังตัวติดตั้งจาวาได้ บางที Oracle จะเปลี่ยนสิ่งนี้ในไม่ช้า