2015-01-20 17 views
11

Chcemy, aby zaktualizować środowisko JDK na wielu komputerach, wszystkie uruchomione okna, ale różne wersje (zarówno XP lub 7)Instalacja JDK 8 i JRE 8 cicho na komputerze z systemem Windows za pośrednictwem linii poleceń

W tym celu, I” m teraz tworzy skrypt, który automatycznie uruchomi poprawny instalator (32/64 bitowy). Próbowałem uruchomiony instalator za pomocą następującego polecenia:

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature"

Działa to dobrze na maszynie bez JDK/JRE 8 zainstalowany. Jednak jestem z systemem do kilku kwestii:

  • Jeżeli JDK/JRE 8 jest już zainstalowany, instalator odinstaluje zarówno JDK & JRE zamiast po prostu nie robi nic (lub ponownej instalacji)
  • Jeśli restart jest wymagane, jest automatycznie wymuszone i muszę tego uniknąć, ponieważ są inne działania, które muszę wykonać w skrypcie po zakończeniu instalacji.
  • Nie ma pełny plik tryb/log wskazać co instalator jest rzeczywiście robi

Mam spojrzał na tych źródeł:

ale Wydaje się, że brakuje im i są bardzo mylące, co da mi pożądany rezultat.

+0

Co o wdrożyć go w/w folderze i wyregulować zmienne środowiskowe? – PeterMmm

+0

Czy bezpieczne jest wdrażanie Java w taki sposób na komputerze z systemem Windows? Czy instalator nie ustawia również innych wartości rejestru, które mogą być potrzebne niektórym programom? – dagandlerx

+0

W zależności od przypadku użycia. Czy używasz wtyczki Java Browser Plug-in? Nie powinieneś i jeśli jest to obowiązkowe, prawdopodobnie to nie zadziała. Używasz .jar z podwójnym kliknięciem? Prawdopodobnie to rozwiązanie nie zadziała. Nie jestem pewien, co się stanie, jeśli zrobisz wersję * agnostyczną * początkową instalację (określ C: \ java jako folder instalacyjny) i po prostu skopiuj nowe wersje do tego folderu. – PeterMmm

Odpowiedz

7

bym rozwiązania JDK i JRE oddzielnie:

JDK nie zależy od wpisów rejestru lub cokolwiek innego exe instalatora robi. Więc zainstalować JDK - bez Publicznej JRE - on tylko jeden urządzenia za

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature" 

Następnie można po prostu zapiąć wynikowy instalację, kopiowanie i rozpakować go do innych urządzeń tego samego typu OS.

JRE instalator (oddzielne pobieranie z Oracle) może być uruchamiany z opcjami i plikiem konfiguracyjnym jako udokumentowane tutaj: http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html

Zakładając, że konfiguracja jest w tym samym katalogu co plik EXE instalatora opcji INSTALLCFG="%cd%\jre-install-options.cfg" może być używany. W przeciwnym razie do pliku konfiguracyjnego wymagana jest pełna ścieżka (INSTALLCFG = "c: \ path \ to \ jre-install-options.cfg"). Tak, coś w tym rodzaju (z pliku dziennika i przy założeniu, że plik konfiguracyjny jest w tym samym katalogu exe):

jre-8-windows-i586.exe INSTALLCFG="%cd%\jre-install-options.cfg" /s /L C:\TMP\jre-install.log 

Wydaje się, że następujące jre-install-options.txt może pracować dla Ciebie:

opcje pliku
INSTALL_SILENT=Enable 
REBOOT=Disable 
STATIC=Enable 

config są wymienione tutaj: http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html

Sens ostatniej linii jest wyjaśnione tutaj: http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html#static_installation

+1

Względna ścieżka do INSTALLCFG nie działała dla mnie. Zobacz mój [SuperUser] (http://superuser.com/questions/970540/cannot-install-java-silently) pytanie –

+0

Co zrobi instalator, jeśli Java jest już zainstalowana? Czy odinstaluje Javę i zainstaluje ją ponownie, czy też będzie tylko odinstalowywać? A w tym drugim przypadku będzie wskazywał, co zrobił, najlepiej nie poprzez dziennik? Czy reboot będzie rzeczywiście wymagany, zanim Java będzie mogła być użyta? – Septagram

+0

Wiem, że jest to raczej stary post, ale plik konfiguracyjny ma flagę [REMOVEOUTOFDATEJRES] (https://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html#table_config_file_options), która będzie usuń stare wersje środowiska JRE. Ustawienie tego na zero może dać ci to, czego potrzebujesz. – DynaWeb

0

Dla JRE instalacji cichej:

start /wait msiexec /i "%~ java8.40x64.msi " JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 RebootYesNo=No WEB_JAVA=1 /q

Możesz zobaczyć cały wpis here.

+1

Czy to działa dla 'exe' zamiast' msi'? – Septagram

0

Wydaje się, że są ciągłe zmiany do obsługiwanych opcji polecenia. W przypadku ostatniej aktualizacji 8 Update 131 musiałem zrezygnować z wszystkich opcji stylu msiexec, ponieważ żadna z nich nie działała. Użyłem dokumentacji dla pobranej wersji java do skonstruowania przełączników do instalatora. Jak pokazano w powyższych odpowiedziach, opcje pliku konfiguracyjnego można przekazać do instalatora w linii poleceń. Ostateczna poleceń, które użyłem w Packer zainstalować Java na Win2016 Server ami było:

Start-Process 'C:\Windows\Temp\jre-8u131-windows-x64.exe' ` 
    -ArgumentList 'INSTALL_SILENT=Enable REBOOT=Disable SPONSORS=Disable' ` 
    -Wait -PassThru 

Komenda ta dodaje również Javy do ścieżki systemowej domyślnie, jednak nie w jednym to instaluje. Otwórz nowy powershell skorupę i będzie na drodze do tego płaszcza (Skontroluj z $env.path)

źródła prawdy:

http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html#table_config_file_options

Powiązane problemy