簡體   English   中英

如何將Java JDK靜默安裝到Windows上的特定目錄中

[英]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安裝程序。 提取是(肯定有更優雅的方法,但我只知道這個)

  1. 手動運行exe - 您只需要第一次執行它,將其轉換為msi
  2. 從C:\\ Users \\ AppData \\ LocalLow \\ Sun \\ Java \\ jdx.xy \\ jdk.xyzmsi抓取msi(和所有other.cab文件)
  3. 運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM