使用代碼,如何確定在Windows中安裝Java VM(及其版本)。如何確定Java VM是否安裝在Windows上?
回答
假設您希望從批處理文件中以編程方式確定此問題,可以使用安裝在windows\system32
中的reg.exe
工具。
關於這個工具令人討厭的事情是,沒有辦法讓它只返回一個退出代碼,所以你必須通過重定向壓制它的輸出到任何地方。當該值不存在時,它也會生成一條ERROR消息。
@echo off
rem
rem DetectJvmInstalled.cmd
rem
reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion" > nul 2> nul
if errorlevel 1 goto NotInstalled
rem Retrieve installed version number.
rem The reg.exe output parsing found at http://www.robvanderwoude.com/ntregistry.php
set JvmVersion=
for /F "tokens=3* delims= " %%A IN ('reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion"') do set JvmVersion=%%A
rem if "%JvmVersion%" == "" goto NotInstalled
:Installed
echo JVM Version = %JvmVersion%
exit /b 0
:NotInstalled
echo JVM Not installed.
exit /b 1
注意事項:
- 有兩種重定向到
nul
設備,一個用於標準輸出,另一個用於標準錯誤。 - 檢測與值解析分開進行,以避免在值不存在時顯示
ERROR...
消息。 delims=
選項後面有一個空格字符(因爲空格是分隔符)。- 批處理文件如果成功(安裝)或失敗時(未安裝)返回錯誤級別/退出代碼爲零。
希望它有幫助。
無法檢測是否從Java代碼安裝了JVM。如果沒有JVM存在,Java代碼就無法運行。因此,如果您能夠運行已編譯的代碼,則會安裝JVM。
所以我們可以說'return true'總是正確的結果:-) – 2011-03-19 17:29:13
我不認爲在Windows上可以安裝的JVM可以是。我更關心的是檢查你的硬盤驅動器目錄中是否有JRE,以及是否可以通過參考PATH
環境變量中的bin
文件夾輕鬆訪問此JRE。
您可以通過嘗試從代碼運行java -version
並收集輸出來檢查此問題。
如果您收到消息說明'java' is not recognized as an internal or external command, operable program or batch file.
,那麼您的jre沒有被引用。
雖然Microsoft Windows仍然支持PATH變量,但它更喜歡它的註冊表將程序文件名解析爲其完整路徑。所以只要檢查PATH變量的條目是不夠的。正如你所建議的那樣,運行「java -version」似乎是最可靠和最簡單的解決方案。 – 2011-03-19 15:44:59
我想也許你有興趣調用這些:
System.getProperty("os.name");
System.getProperty("java.version");
不知道這是OP在找什麼,但這是我正在尋找的。謝謝。 – NeilMonday 2011-09-06 21:14:21
Oracle的deployJava.js不能只檢查一個Java特定的最低版本可在用戶的計算機上,但如果是在Windows上,引導他們通過下載並安裝它,如果需要的話。
通常deployJava.js用於使用Java Web Start & applets,您可以使用JWS形式鏈接到「裸」 Jar文件(不依賴)啓動的應用程序提供了啓動按鈕。
- 1. 如何確定java是否通過python安裝在系統上?
- 2. 如何確定Windows Java安裝位置
- 3. 在vm windows上安裝openstack azure
- 4. Java:如何檢查MySQL是否安裝在Windows上?
- 5. 如何檢查Java是否安裝在我的Windows系統上?
- 6. 確定是否安裝了Google地球(在Windows上)
- 7. 在centos7上正確安裝redis vm
- 8. 如何確定asp.net核心是否已安裝在Windows服務器上
- 9. 如何在Windows上正確安裝MinGW
- 10. 在windows vm上使用安裝程序安裝vmware工具
- 11. 如何確定Dropbox是否已安裝在iOS設備上?
- 12. 如何在Windows上安裝
- 13. 如何在Windows上安裝
- 14. 如何在Windows上安裝
- 15. 我們如何以編程方式確定Java是否安裝在Windows系統上?
- 16. 在VM下在windows azure中安裝oracle
- 17. 如何確定在Windows上安裝的庫是32位還是64位?
- 18. 如何知道iis是否安裝在Windows 7上?
- 19. 如何判斷SP1是否安裝在Windows Server 2008 R2 Standard上?
- 20. Android:如何確定Google Play服務是否已正確安裝
- 21. 如何檢查PyQt5在Mac上是否正確安裝?
- 22. 如何判斷SQLite是否在Linux上正確安裝?
- 23. 在Linux VM(RHEL)上安裝Git
- 24. JRE安裝是否在Windows上自動定義PATH和JAVA_HOME?
- 25. 在Windows上安裝
- 26. 如何確定用戶是否被重新安裝在Android
- 27. 如何確定軟件包是否安裝在elisp中?
- 28. 確定是否Windows 8的可安裝設備驅動程序
- 29. 的CouchDB不會安裝爲在Azure上的Windows VM服務
- 30. 如何確定是否要獲取內聯或重定向java安裝?
Java代碼可以在沒有Java VM的情況下運行? – 2011-03-19 15:17:22
也許OP意味着從批處理文件或其他語言檢測?請解釋。 – mellamokb 2011-03-19 15:20:22
他沒有說代碼必須是Java。 – Ken 2011-03-19 15:32:46