2009-12-07 42 views
3

我試圖捆綁Java作爲應該默默地用單一的點擊安裝Java產品的一部分,有一些問題:Java服務器JVM安裝32位系統

我的安裝具有以下要求: 已經沒有保持沉默,不需要用戶輸入或動作excpect上的安裝文件雙擊(無配置和安裝後的步驟) 已安裝的Java使JAVA_HOME指向的Java SE安裝了服務器JVM

這是完全可能做到這一點與sun java安裝程序的win32系統?我知道默認情況下,jre並不包含服務器jvm。但即使在安裝jdk時,安裝(並映射到JAVA_HOME)的公共jre也不包含服務器jvm。在陽光下自己的README文件(Sun README)他們建議複製文件:

的jre \ BIN \服務器\ 在Microsoft Windows平臺上,JDK包括 雖然Java HotSpot(TM)服務器VM和Java HotSpot客戶端虛擬機。 但是,適用於Microsoft Windows的Java SE運行時環境 平臺僅包含Java HotSpot Client VM。那些希望 將Java HotSpot Server VM與Java SE運行時環境 環境一起使用的人可以將JDK的jre \ bin \ server文件夾複製到Java SE運行時環境中的 bin \ server目錄中。

但是這種解決方案很難在無提示安裝中自動優雅地自動化。如果不重新打包整個Java分發,就必須有更好的方法來做到這一點。有沒有人遇到同樣的問題,並提出一個更優雅的解決方案?

+0

同樣的問題,是的,但沒有好的解決方案。 – Lucero 2009-12-07 08:30:24

回答

1

在過去的幾年中,我是這樣管理Java的:我下載安裝程序,將其安裝到某處,將所有文件打包到ZIP中,然後使用該ZIP文件在任何地方部署Java。安裝程序會在註冊表和%WinDir%等中留下很多東西,而這些並不是你真正需要的。這也允許我移動一些文件(如bin\server\jvm.dll或安全相關的設置)。

這樣,我甚至可以將Java嵌入到應用程序目錄中,而不依賴於任何已安裝的Java版本。

只需在啓動應用程序之前在小批量腳本中設置JAVA_HOME即可。您可以使用%~dp0使其完全獨立位置(%~dp0擴展到通向批處理文件的路徑)。

+0

「安裝程序會在註冊表和%WinDir%等等中留下很多東西,這些都不是你真正需要的。」 - 這是有據可查的行爲,還是僅僅基於經驗?如果安裝程序版本之間的行爲發生變化會怎樣像這樣壓縮整個JRE在同一時間聽起來很吸引人,也很可怕。 – 2009-12-07 08:46:19

+1

我不確定它是否記錄在某處,但我很肯定Sun無法改變這種行爲。註冊表項僅用於使外部代碼更容易找到默認JVM。 Java不需要它們工作。我同意它需要信仰的飛躍:) – 2009-12-07 08:57:54

+0

有誰知道你必須跳過箍來獲得一個工作服務器jvm在Windows上的原因?我沒有看到爲什麼在jre上的jre沒有安裝缺省的服務器jvm的邏輯。 – Mans 2009-12-07 09:25:45

1

製作您自己的安裝程序。

我使用inno setup編譯器,適合我的目的。 如果您需要註冊表項,您可以導出它們,將它們包含在安裝程序中,包含這些文件以及在這裏和那裏稍作更改,然後就完成了。無聲安裝程序,可根據您需要的確切規格配置相關內容。

它配備了一個易於使用的腳本嚮導。

我提到了一個特定的因爲它是免費的。最終,製作你自己的安裝程序就是解決方案。

相關問題