2015-01-20 21 views
11

Chúng tôi muốn để cập nhật các môi trường JDK trên nhiều máy tính, tất cả các cửa sổ đang chạy nhưng phiên bản khác nhau (hoặc XP hoặc 7)Cài đặt JDK 8 và JRE 8 âm thầm trên máy tính Windows thông qua dòng lệnh

Vì mục đích đó, tôi m bây giờ tạo ra một kịch bản sẽ tự động chạy trình cài đặt chính xác (32/64 bit). Tôi cố gắng chạy trình cài đặt bằng lệnh sau:

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

này hoạt động tốt trên máy tính không có JDK/JRE 8 được cài đặt. Tuy nhiên, tôi đang chạy vào một vài vấn đề:

  • Nếu JDK/JRE 8 đã được cài đặt, trình cài đặt tháo gỡ cả JDK & JRE thay vì chỉ đơn giản là không làm gì cả (hay cài đặt lại)
  • Nếu khởi động lại là bắt buộc, nó được thực hiện một cách mạnh mẽ tự động và tôi cần tránh điều đó vì có các hành động khác mà tôi cần thực hiện trong tập lệnh sau khi cài đặt hoàn tất.
  • Không có VERBOSE tập tin chế độ/log để chỉ ra những gì trình cài đặt được thực sự làm

Tôi đã xem xét các nguồn:

nhưng họ có vẻ thiếu và rất khó hiểu như những gì sẽ cho tôi kết quả mong muốn.

+0

gì được về triển khai nó như là/trong một thư mục và điều chỉnh biến môi trường? – PeterMmm

+0

Có an toàn để triển khai Java theo cách đó trên máy Windows không? Không phải trình cài đặt cũng thiết lập các giá trị đăng ký khác nhau có thể cần thiết cho một số chương trình? – dagandlerx

+0

Phụ thuộc vào trường hợp sử dụng của bạn. Bạn có sử dụng Trình duyệt Java Plug-in không? Bạn không nên và nếu bắt buộc này có lẽ sẽ không hoạt động. Bạn đang chạy .jar với nhấp đúp? Dự kiến ​​giải pháp này sẽ không hoạt động. Tôi không shure những gì sẽ xảy ra, nếu bạn thực hiện một phiên bản * agnostic * cài đặt ban đầu (chỉ định C: \ java như thư mục cài đặt) và sao chép đơn giản qua các phiên bản mới vào thư mục đó. – PeterMmm

Trả lời

7

tôi sẽ giải quyết JDK và JRE riêng:

Các JDK không phụ thuộc vào mục đăng ký hoặc bất cứ người nào khác exe installer. Vì vậy, cài đặt JDK - mà không Công JRE - trên chỉ một máy sử dụng

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

Sau đó, bạn chỉ có thể zip lên quá trình cài đặt kết quả, sao chép và giải nén nó vào máy khác của các loại hệ điều hành tương tự.

Các JRE cài đặt (download riêng từ Oracle) có thể chạy với các tùy chọn và tập tin cấu hình như tài liệu ở đây: http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html

Giả sử các cấu hình là trong cùng thư mục với các file exe cài đặt, tùy chọn INSTALLCFG="%cd%\jre-install-options.cfg" có thể đã sử dụng. Nếu không, đường dẫn đầy đủ là bắt buộc đối với tệp cấu hình (INSTALLCFG = "c: \ path \ to \ jre-install-options.cfg"). Vì vậy, một cái gì đó như thế này (với file log và giả định các tập tin cấu hình là trong cùng thư mục của exe):

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

Dường như jre-cài đặt-tùy chọn sau.txt có thể làm việc cho bạn:

tùy chọn tập tin
INSTALL_SILENT=Enable 
REBOOT=Disable 
STATIC=Enable 

Các cấu hình được liệt kê ở đây: http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html

Ý nghĩa của dòng cuối cùng được giải thích ở đây: http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html#static_installation

+1

Một đường dẫn tương đối cho INSTALLCFG đã không làm việc cho tôi. Xem câu hỏi [SuperUser] của tôi (http://superuser.com/questions/970540/cannot-install-java-silently) –

+0

Trình cài đặt sẽ làm gì nếu Java đã được cài đặt? Nó sẽ gỡ cài đặt Java và cài đặt lại nó hay nó sẽ chỉ gỡ cài đặt? Và trong trường hợp thứ hai nó sẽ chỉ ra những gì nó đã làm, tốt hơn là không thông qua nhật ký? Việc khởi động lại có thực sự được yêu cầu trước khi Java có thể sử dụng được không? – Septagram

+0

Tôi biết đây là bài đăng khá cũ, nhưng tệp cấu hình có [REMOVEOUTOFDATEJRES] (https://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html#table_config_file_options) cờ sẽ loại bỏ các phiên bản cũ của JRE. Đặt giá trị này thành 0 có thể cung cấp cho bạn những gì bạn cần. – DynaWeb

0

Đối với JRE cài đặt im lặng:

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

Bạn có thể xem toàn bộ bài đăng here.

+1

Tính năng này có hoạt động với 'exe' thay vì' msi' không? – Septagram

0

Tôi đang gặp sự cố tương tự với tùy chọn/s. Tôi đã tìm thấy một lỗi jdk https://bugs.openjdk.java.net/browse/JDK-8033364. Dường như họ đã xóa hỗ trợ để được trợ giúp hoặc s. Hãy thử/qn nó làm việc cho tôi

jdk-8u92-windows-x64.exe/qn

0

Dường như có sự thay đổi liên tục để các tùy chọn dòng lệnh được hỗ trợ. Đối với bản cập nhật mới nhất 131, tôi đã phải từ bỏ tất cả các tùy chọn kiểu msiexec vì không ai trong số chúng hoạt động. Tôi đã sử dụng tài liệu cho phiên bản java mà tôi đã tải xuống để xây dựng các trình chuyển đổi cho trình cài đặt. Như được hiển thị trong câu trả lời ở trên, các tùy chọn tệp cấu hình có thể được chuyển đến trình cài đặt trên dòng lệnh. Lệnh cuối cùng mà tôi sử dụng trong Packer để cài đặt Java trên một máy chủ Win2016 ami là:

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

Lệnh này cũng cho biết thêm Java để đường dẫn hệ thống theo mặc định, tuy nhiên không phải trong một cài đặt nó. Mở vỏ PowerShell mới và nó sẽ nằm trong một con đường cho vỏ đó (Kiểm tra với $env.path)

Nguồn thật:

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

Các vấn đề liên quan