[英]How to silently install Java JDK into a specific directory on windows
在我的開發機器上,我總是需要安裝Java 6 和 Java 7,我必須在32位和64位版本中安裝每個JDK,以便進行測試。 由於Java更新的頻率似乎變得越來越荒謬(現在每周兩次?)每次更新都要求我取消然后重新安裝4個 JDK。 所以這真的很煩人,因此我想編寫整個過程的腳本。
我的問題是,默認情況下,每個JDK版本都安裝到包含update-number的目錄路徑中(默認值:“C:\\ Program Files \\ Java \\ jdk1.6.0_ <update-nr> \\”)。 為了避免我不得不調整大量的構建腳本,我總是手動從安裝路徑中刪除尾隨的“_ <update-nr>”並始終安裝到相同的“C:\\ Program Files \\ Java \\ jdk1.6.0”或“C:\\ Program Files \\ Java \\ jdk1.7.0”,分別為64位版本和C:\\ Program Files(x86)\\ Java \\ jdk1.6.0“或”C:\\ Program Files(x86) \\ Java \\ jdk1.7.0“,對於32位版本,分別為。
我發現了,如何為JRE安裝程序(即Java運行時)指定安裝目錄:
<jre-installfile>.exe [/s] [INSTALLDIR=<drive>:\<JRE_install_path>]
[STATIC=1] [WEB_JAVA=0/1] [WEB_JAVA_SECURITY_LEVEL=VH/H/M/L]
我還沒有找到類似的描述如何指定JDK安裝程序的安裝目錄。
有誰知道是否以及如何指定JDK安裝程序的安裝路徑,以便可以將靜默JDK安裝指向特定的安裝目錄?
我可以使用以下命令成功安裝包含公共JRE的x64和x86版本的JDK 8 update 60:
這里帶有源代碼的JDK 1.8.60(x86)將轉到C:\\Java\\x86\\jdk1.8.0_60
,JRE轉到C:\\Java\\x86\\jre1.8.0_60
:
jdk-8u60-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR=C:\Java\x86\jdk1.8.0_60 /INSTALLDIRPUBJRE=C:\Java\x86\jre1.8.0_60
以類似的方式,帶源代碼的JDK 1.8.60(x64)將轉到C:\\Java\\x64\\jdk1.8.0_60
,JRE轉到C:\\Java\\x64\\jre1.8.0_60
:
jdk-8u60-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR=C:\Java\x64\jdk1.8.0_60 /INSTALLDIRPUBJRE=C:\Java\x64\jre1.8.0_60
請參閱Oracle JRE安裝程序選項
避免在腳本中重寫目錄的一種方法是使用符號鏈接(NTFS上的聯結)。 首先,從SysInternals下載結點實用程序: http : //technet.microsoft.com/en-us/sysinternals/bb896768.aspx然后解壓縮,復制到PATH上的某個目錄,然后運行一次以接受許可證。
然后,您可以輕松創建符號鏈接: junction "C:\\Program Files\\Java\\jdk1.6.0" "C:\\Program Files\\Java\\jdk1.6.0_37" junction "C:\\Program Files (x86)\\Java\\jdk1.6.0" "C:\\Program Files (x86)\\Java\\jdk1.6.0_37"
刪除一些符號鏈接: junction -d "C:\\Program Files\\Java\\jdk1.6.0"
您也可以使用mklink( http://technet.microsoft.com/en-us/library/cc753194.aspx )(和刪除del),但我更喜歡結點的簡單性和清晰度。
我剛剛搜索時發現了這篇文章......它為INSTALLDIR指定了一個參數。
http://makeitfaster.wordpress.com/2011/03/25/java-jdk-silent-install-on-windows/
jdk-7u2-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature" INSTALLDIR="%CD%\jdk7u2"
我很遺憾已經在我的開發機器上安裝了,所以我無法測試......
試試:jdk-7u2-windows-i586.exe / s INSTALLDIR = \\“C:\\ Program Files \\ JAVA \\ JDK \\”
我剛剛在JDK7安裝程序中發現了一個回歸,導致它忽略INSTALLDIR
。 最后一個正確的版本是更新21。
我已經提交了一份錯誤報告,並會在Oracle回復后通知您。
更新 :事實證明這是由一個損壞的(不完整的)JDK安裝引起的。 卸載此版本(添加/刪除程序)后,新安裝運行正常。
這是適用於JDK_7u55的方式。 我選擇安裝JRE:
PowerShell命令
$strJavaInstallExe=<Your JDK executable>
$strJavaInstallDir=<The directory you want the JDK and JRE to install to>
$cmdInstallJava=$strJavaInstallExe+' /passive /log "'+$strJavaInstallDir+'\install.log" ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR="'+$strJavaInstallDir+'" INSTALLDIRPUBJRE="'+$strJavaInstallDir+'"'
Invoke-Expression $cmdInstallJava
希望這可以幫助!
編輯 - 更簡單的方法
執行jdk-7u60-windows-x64.exe /passive /log install.log INSTALLDIR:c:\\pippo
適用於7u45和7u60
老答案
exe包含msi安裝程序。 提取是(肯定有更優雅的方法,但我只知道這個)
msiexec /i jdkx.yzmsi /passive INSTALLDIR:c:\\pippo
file jreinstall.bat(例如:桌面存儲)(替換jdk的jre)
@echo off
start /w %UserProfile%\Desktop\jre-8u65-windows-x64.exe /s
setx JAVA_HOME "C:\Program Files\Java\jre1.8.0_65"
exit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.