Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Java Runtime Environiment (JRE) (http://forum.oszone.net/showthread.php?t=122463)

semiono 09-11-2008 23:18 948124

Java Runtime Environiment (JRE)
 
Код:

; Java Runtime Environiment 1.6.0_07
$InstallPath=@ProgramFilesDir & "\Java\"

If FileExists(@SystemDir & "\java.exe") Then
        Exit
Else

Blockinput(1)

Run("jre-6u7-windows-i586-p-s.exe")

EndIf

WinWaitActive("Java Setup - Welcome")
Sleep(300)
ControlClick("", "", "[Class:Button; Instance:4]", "left", 1)
Sleep(300)
ControlClick("", "", "[Class:Button; Instance:2]", "left", 1)

WinWaitActive("Java Setup - Custom", "Custom Setup")
Sleep(300)
ControlClick("", "", "[Class:SysTreeView32; Instance:1]", "left", 1, 55, 40)
Send("{DOWN 5}")
Sleep(300)
Send("{ENTER}")
Sleep(300)
Send("{UP 3}")
Sleep(300)
ControlClick("", "Custom Setup", "[Class:Button; Instance:1]", "left", 1)

WinWaitActive("Java Setup", "Change Current Destination Folder")
Sleep(300)
Send($InstallPath)
Sleep(300)
ControlClick("", "Change Current Destination Folder", "[Class:Button; Instance:1]", "left", 1)

WinWaitActive("Java Setup - Custom", "Custom Setup")
Sleep(300)
ControlClick("", "Custom Setup", "[Class:Button; Instance:4]", "left", 1)

WinWaitActive("Java Setup - Complete", "")
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)

Blockinput(0)

RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Java", "", "REG_SZ", "&Java")
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Java\command", "", "REG_SZ", @SystemDir & "\control.exe javacpl.cpl,,0")
;
RegWrite("HKCU\Software\JavaSoft\Java Update\Policy", "EnableAutoUpdateCheck", "REG_BINARY", "01000000d08c9ddf0115d1118c7a00c04fc297eb010000001975f2a9e936824fbc0ae15fc6a0d0f9000000001c000000500061007300730077006f007200640020004400610074006100000003660000a80000001000000036816277b863a2e41eedd7b16585ac1c0000000004800000a000000010000000f2fede231677b69c99a6f3f2184405250800000075bb4e220e65c3b0140000005e0f6be8b61e3fd2c5cd5254eb6892df701405c7")
RegWrite("HKLM\Software\JavaSoft\Java Plug-in\1.6.0_07", "HideSystemTrayIcon", "REG_DWORD", "00000001")
RegWrite("HKLM\Software\JavaSoft\Java Update\Policy", "EnableJavaUpdate", "REG_DWORD", "00000000")

; Links
FileCreateShortcut(@SystemDir & "\control.exe", @UserProfileDir & "\SendTo\Config\Java.lnk", @SystemDir, "javacpl.cpl,,0", "Java", $InstallPath & "bin\java.exe", "", 0, @SW_SHOWNORMAL)
FileCreateShortcut(@SystemDir & "\control.exe", @ProgramsDir & "\Config\Java.lnk", @SystemDir, "javacpl.cpl,,0", "Java", $InstallPath & "bin\java.exe", "", 0, @SW_SHOWNORMAL)
;
FileSetAttrib($InstallPath & "COPYRIGHT", "-R")
FileSetAttrib($InstallPath & "LICENSE", "-R")
FileSetAttrib($InstallPath & "PATCH.ERR", "-R")
FileSetAttrib($InstallPath & "README.txt", "-R")
FileSetAttrib($InstallPath & "THIRDPARTYLICENSEREADME.txt", "-R")
FileSetAttrib($InstallPath & "Welcome.html", "-R")
;
FileDelete($InstallPath & "COPYRIGHT")
FileDelete($InstallPath & "LICENSE")
FileDelete($InstallPath & "PATCH.ERR")
FileDelete($InstallPath & "README.txt")
FileDelete($InstallPath & "THIRDPARTYLICENSEREADME.txt")
FileDelete($InstallPath & "Welcome.html")
;
FileDelete(@AppDataDir & "\Sun\Java\Deployment\deployment.properties")
;
$file = FileOpen(@AppDataDir & "\Sun\Java\Deployment\deployment.properties", 10)
FileWrite($file, "deployment.javaws.autodownload=never" & @CRLF)
FileWrite($file, "deployment.cache.max.size=1" & @CRLF)
FileWrite($file, "deployment.javaws.cache.update=false" & @CRLF)
FileWrite($file, "deployment.system.tray.icon=false" & @CRLF)
FileWrite($file, "deployment.version=6.0" & @CRLF)
FileWrite($file, "deployment.browser.vm.iexplorer=false" & @CRLF)
FileWrite($file, "deployment.javaws.associations=never" & @CRLF)
FileWrite($file, "deployment.cache.enabled=false" & @CRLF)
FileWrite($file, "deployment.javaws.shortcut=never" & @CRLF)
FileWrite($file, "deployment.console.startup.mode=disable" & @CRLF)
FileClose($file)
;
FileSetAttrib($InstallPath, "+R")
$file = FileOpen($InstallPath & "desktop.ini", 10)
FileWrite($file, "[.ShellClassInfo]" & @CRLF)
FileWrite($file, "IconFile=bin\java.exe" & @CRLF)
FileWrite($file, "IconIndex=0" & @CRLF)
FileClose($file)

Вот написал скриптик, кампилируем его и архивируем вместе с дистрибутивом от Sun,
затем можно из этого nLite хотфикс зделать:
Код:

[EditFile]
SVCPACK.INF,SetupHotfixesToRun,AddProgram

[AddProgram]
Java.exe

Так как я ньюб, меня в автоит испугало по началу вот это Class:SysTreeView32,
потому-что пришлось координатами X Y нажимать! Но всё обошлось. :)
Ещё один момент по автоиту, я вообще-то хотел запустить в конце консоль Javacpl.cpl,
чтобы отконфигурировать постинстал настройки, но удивительно,
что кнопки этого CPL-а совершенно не видно в Au3Info! Хм. забавно!

semiono 10-11-2008 01:53 948213

Новый скрипт:
Код:

; Java SE Runtime Environiment 1.6.0_10
$InstallPath=@ProgramFilesDir & "\Java\"

RegRead("HKLM\Software\JavaSoft\Java Runtime Environment", "CurrentVersion")
If @error <> 1 Then Exit

If FileExists($InstallPath) Then Exit

Blockinput(1)

Run("jre-6u10-windows-i586-p.exe")

WinWaitActive("Java Setup - Welcome", "Welcome to Java")
Sleep(300)
ControlClick("Java Setup - Welcome", "Welcome to Java", "[Class:Button; Instance:4]", "left", 1, 5, 10)
ControlClick("Java Setup - Welcome", "Welcome to Java", "[Class:Button; Instance:2]", "left", 1, 44, 11)
Sleep(1000)

ControlClick("Java Setup - Destination Folder", "Destination Folder", "[Class:Button; Instance:2]", "left", 1, 44, 11)
Send("{DELETE 64}")
Sleep(300)
Send($InstallPath)
Sleep(300)
ControlClick("Java Setup", "Change Current Destination Folder", "[Class:Button; Instance:1]", "left", 1, 44, 11)
Sleep(300)
ControlClick("Java Setup - Destination Folder", "Destination Folder", "[Class:Button; Instance:1]", "left", 1, 44, 11)

WinWaitActive("Java Setup - Complete", "You have Successfully Installed Java")
ControlClick("Java Setup - Complete", "You have Successfully Installed Java", "[Class:Button; Instance:1]", "left", 1, 44, 11)

Blockinput(0)

ShellExecute($InstallPath & "bin\jqs.exe", "-unregister", $InstallPath & "bin", "", @SW_HIDE)
; Regs
RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Run", "SunJavaUpdateSched")
RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion\Run", "SunJavaUpdateSched")
;
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Java", "", "REG_SZ", "&Java")
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Java\command", "", "REG_SZ", @SystemDir & "\control.exe javacpl.cpl,,0")
;
RegWrite("HKCU\Software\JavaSoft\Java Update\Policy", "EnableAutoUpdateCheck", "REG_BINARY", "01000000d08c9ddf0115d1118c7a00c04fc297eb010000001975f2a9e936824fbc0ae15fc6a0d0f9000000001c000000500061007300730077006f007200640020004400610074006100000003660000a80000001000000023420b3c7a97e50631cd5f44afd32f400000000004800000a000000010000000711d7f0e77fac732fe0ed2c59b2c680108000000ff169463b94fbf2814000000670e9ec32122af4f7d419ad2f3aef3358defc6b9")
RegWrite("HKLM\Software\JavaSoft\Java Plug-in\1.6.0_10", "HideSystemTrayIcon", "REG_DWORD", "00000001")
RegWrite("HKLM\Software\JavaSoft\Java Plug-in\1.6.0_10", "UseJava2IExplorer", "REG_DWORD", "00000000")
RegWrite("HKLM\Software\JavaSoft\Java Plug-in\1.6.0_10", "UseNewJavaPlugin", "REG_DWORD", "00000000")
RegWrite("HKLM\Software\JavaSoft\Java Update\Policy", "EnableJavaUpdate", "REG_DWORD", "00000000")

; Links
FileCreateShortcut(@SystemDir & "\control.exe", @UserProfileDir & "\SendTo\Config\Java.lnk", @SystemDir, "javacpl.cpl,,0", "Java", $InstallPath & "bin\java.exe", "", 0, @SW_SHOWNORMAL)
FileCreateShortcut(@SystemDir & "\control.exe", @ProgramsDir & "\Config\Java.lnk", @SystemDir, "javacpl.cpl,,0", "Java", $InstallPath & "bin\java.exe", "", 0, @SW_SHOWNORMAL)
;
FileSetAttrib($InstallPath & "COPYRIGHT", "-R")
FileSetAttrib($InstallPath & "LICENSE", "-R")
FileSetAttrib($InstallPath & "LICENSE.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_de.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_es.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_fr.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_it.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_ja.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_ko.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_sv.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_zh_CN.rtf", "-R")
FileSetAttrib($InstallPath & "LICENSE_zh_TW.rtf", "-R")
FileSetAttrib($InstallPath & "README.txt", "-R")
FileSetAttrib($InstallPath & "THIRDPARTYLICENSEREADME.txt", "-R")
FileSetAttrib($InstallPath & "Welcome.html", "-R")
;
FileDelete($InstallPath & "COPYRIGHT")
FileDelete($InstallPath & "LICENSE")
FileDelete($InstallPath & "LICENSE.rtf")
FileDelete($InstallPath & "LICENSE_de.rtf")
FileDelete($InstallPath & "LICENSE_es.rtf")
FileDelete($InstallPath & "LICENSE_fr.rtf")
FileDelete($InstallPath & "LICENSE_it.rtf")
FileDelete($InstallPath & "LICENSE_ja.rtf")
FileDelete($InstallPath & "LICENSE_ko.rtf")
FileDelete($InstallPath & "LICENSE_sv.rtf")
FileDelete($InstallPath & "LICENSE_zh_CN.rtf")
FileDelete($InstallPath & "LICENSE_zh_TW.rtf")
FileDelete($InstallPath & "README.txt")
FileDelete($InstallPath & "THIRDPARTYLICENSEREADME.txt")
FileDelete($InstallPath & "Welcome.html")
;
FileDelete(@AppDataDir & "\Sun\Java\Deployment\deployment.properties")
;
$file = FileOpen(@AppDataDir & "\Sun\Java\Deployment\deployment.properties", 10)
FileWrite($file, "deployment.browser.path=" & @CRLF)
FileWrite($file, "deployment.browser.vm.iexplorer=false" & @CRLF)
FileWrite($file, "deployment.cache.enabled=false" & @CRLF)
FileWrite($file, "deployment.cache.max.size=1" & @CRLF)
FileWrite($file, "deployment.console.startup.mode=disable" & @CRLF)
FileWrite($file, "deployment.javaws.associations=never" & @CRLF)
FileWrite($file, "deployment.javaws.autodownload=never" & @CRLF)
FileWrite($file, "deployment.javaws.cache.update=false" & @CRLF)
FileWrite($file, "deployment.javaws.shortcut=never" & @CRLF)
FileWrite($file, "deployment.system.tray.icon=false" & @CRLF)
FileWrite($file, "deployment.version=6.0" & @CRLF)
FileClose($file)
;
FileSetAttrib($InstallPath, "+R")
$file = FileOpen($InstallPath & "desktop.ini", 10)
FileWrite($file, "[.ShellClassInfo]" & @CRLF)
FileWrite($file, "IconFile=bin\java.exe" & @CRLF)
FileWrite($file, "IconIndex=0" & @CRLF)
FileClose($file)


semiono 12-11-2008 06:49 950217

Всётаки пришлось этот кусок кода изменить
Код:

ControlClick("Java Setup - Custom", "Custom Setup", "[Class:Button; Instance:1]", "left", 1, 44, 11)
Sleep(1000)

Send("{BS 32}")
Sleep(300)
Send("{DELETE 32}")
Sleep(300)
Send($InstallPath)
Sleep(300)
Send("{ENTER}")
Sleep(1000)

Вот и думай после этого, что Send("{ENTER}") не рулит! Без него vmware тест никак не проходит!
Я заметил, там при вводе Path, курсор как бы вязнет в текст-поле, то-есть стрелка проподает.
Может в этом и дело.

И я всёж вернулся к jre-6u7-windows-i586-p-s.exe дистрибутиву! Там хоть можно было сразу IE плагин отрубить, а в новой яве ещё и сервис устанавливается bin\jqs.exe - нафиг ставить если всёравно вырубаю!
Вообщем не понравилось u10 with JavaFX(tm)
:)

Vokrug 25-03-2009 18:58 1074625

Вложений: 1
Недавно нужно было распространить JRE через GPO, хочу поделится опытом ковыряния явы... :)

Как делал:
1) скачал последнюю версию (jre-6u12-windows-i586-p-s.exe) с сайта, запустил до первого экрана, в папке %Profile%\Application Data\Sun\Java\jre1.6.0_12 забрал файлики jre1.6.0_12.msi и Data1.cab.
Там есть еще sp1033.MST со всяким рекламным мусором :angry2: и lzma.dll - хз зачем нужен, не разбирался. Их в топку.

2) Берем в руки орку и делаем патч к нашему msi, который устанавливает проперти для установки явы средой по умолчанию в ie и mozilla. Заодно сносим сервис jqs, отключаем значок в трее.
Проверку апдейтов отключить не получилось, на сайте Sun пишут, что ключик HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableAutoUpdateCheck не работает в последних версиях 1.6. Отключить можно только как я понимаю в ветке HKCU. Забил. Автоапдейт вроде будет срабатывать только у пользователей с правами админа.
В качестве полумеры переключил выдавать предупреждения перед скачиванием апдейта, а не перед установкой.

3) Создаем gpo, указывая исходный msi и полученный патч. Тестим, радуемся :)
(или командой msiexec /i jre1.6.0_12.msi TRANSFORMS="fix-jre.mst" /qb)

Трансформ в аттаче :Beer:

vampik 25-03-2009 19:37 1074666

Для отключения апдейтов можно установить EnableJavaUpdate в 0.
Цитата:

Цитата Vokrug
проперти для установки явы средой по умолчанию в ie и mozilla »

Для IE JRE и так устанавливается в качестве среды по умолчанию, для мозилла-подобных браузеров лучше прописывать параметр в реестре, т.к. если устанавливать сначала JRE, а потом браузер, то MOZILLA=1 не сработает. См. мой вариант в этой теме.

Vokrug 26-03-2009 11:58 1075164

Я думал, что EnableJavaUpdate просто прячет закладку Update в панели настроек для пользователей. Или саму проверку тоже вырубает?
И не подскажешь, какие твики для SYSTRAY=0 и MOZILLA=1? Мне просто msi нужен... :)

vampik 26-03-2009 16:39 1075407

Vokrug, проверку тоже вырубает. Чтобы все было в одной теме, я поместил объяснение сюда.


Время: 23:32.

Время: 23:32.
© OSzone.net 2001-