Подтвердить что ты не робот

Как тихо установить Java JDK в определенный каталог в окнах

На моей машине разработки мне всегда нужно установить Java 6 и Java 7, и я должен установить каждый JDK в обеих версиях 32 и 64 бит для тестирования. Поскольку частота обновлений Java, кажется, становится все более и более смешной (два раза в неделю?), Каждое обновление требует от меня повторной установки 4 JDK. Так что это становится очень раздражающим, и поэтому я хотел бы script весь этот процесс.

Моя проблема заключается в том, что по умолчанию каждая версия JDK устанавливается в каталог-путь, содержащий номер обновления (по умолчанию: "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 в конкретный каталог установки?

4b9b3361

Ответ 1

Я мог бы успешно установить как версии x64, так и x86 обновления JDK 8, включая публичную JRE с этими командами:

Здесь 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

Ответ 2

Один из способов избежать переписывания каталогов в скриптах - использовать символические ссылки (переходы на 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 для удаления), но я предпочитаю простоту и ясность соединения.

Ответ 3

Я только что нашел эту статью во время поиска... она указывает параметр для 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"

Я, к сожалению, уже установлен на моей машине dev, поэтому я не смог проверить...

Ответ 4

Try: jdk-7u2-windows-i586.exe/s INSTALLDIR =\ "C:\Program Files\JAVA\JDK \"

Ответ 5

Я только что обнаружил регресс в установщике JDK7, который заставляет его игнорировать INSTALLDIR. Последней правильной версией является обновление 21.

Я зарегистрировал отчет об ошибке и сообщаю вам, как только Oracle ответит.

ОБНОВЛЕНИЕ. Оказывается, это было вызвано поврежденной (неполной) установкой JDK. После удаления этой версии (Установка и удаление программ) новая установка прошла нормально.

Ответ 6

Так работает для меня 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

Надеюсь, это поможет!

Ответ 7

РЕДАКТИРОВАТЬ - более простой способ

Выполнить jdk-7u60-windows-x64.exe /passive /log install.log INSTALLDIR:c:\pippo

Работает с 7u45 и 7u60

OLD answer

В exe содержится программа установки msi. Для извлечения (конечно, есть более элегантные методы, но я знаю только этот)

  • Запустите exe вручную - вам нужно сделать это только в первый раз, чтобы преобразовать его в msi
  • Возьмите MSI (и весь файл other.cab) из C:\Users\AppData\LocalLow\Sun\Java\jdx.x.y\jdk.x.y.z.msi
  • run msiexec /i jdkx.y.z.msi /passive INSTALLDIR:c:\pippo

Ответ 8

файл jreinstall.bat (пример: хранилище на рабочем столе) (заменить jre на jdk)

@echo off
start /w %UserProfile%\Desktop\jre-8u65-windows-x64.exe /s
setx JAVA_HOME "C:\Program Files\Java\jre1.8.0_65"
exit