差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
java:installanywhere:installer_without_jvm [2017/01/05 11:53]
tony 建立
java:installanywhere:installer_without_jvm [2023/06/25 09:48] (目前版本)
行 2: 行 2:
 ====== Without VM的Installer ====== ====== Without VM的Installer ======
 ===== Problem ===== ===== Problem =====
-把JVM和軟體包一起發布,是將side effect降到最低的方法。然而,Oracle打算開始追討授權費,也讓我們開始思考該怎麼發布軟體。 +把JVM和軟體包一起發布,是將side effect降到最低的方法。然而,Oracle打算開始追討授權費,也讓我們開始思考該怎麼發布軟體。如果用使用者安裝的Sun JVM是否能解決問題呢?​ 這我們不曉得;而另外一條路就是OpenJDK。然而OpenJDK的授權,也難以直接包裝於企業用軟體。因此還是要回歸到如何不包裝JVM,但安裝時有JVM可用的問題。 
 +===== How to? ===== 
 +在InstallerAnywhere 2015 build tab中,可以看到VM Search Instructions設定。其中Without VM包含了搜尋現有與線上下載兩種模式:​\\ 
 +{{:​java:​installanywhere:​ia_build_without_vm_options.png|}} 
 +==== Download from URL ==== 
 +如上圖所示,你必須輸入一個URL,它可以是http也可以是ftp,但請確定server允許匿名存取;md5 hash驗證就看你是否需要,我是使用HashMyFiles去取得md5 hash值。實際執行build installer,從http下載結果:​\\ 
 +{{:​java:​installanywhere:​ia_download_jvm_with_md5_verify.png|}}\\ 
 +\\ 
 +從ftp下載結果:​\\ 
 +{{:​java:​installanywhere:​ia_download_jvm_using_ftp.png|}}\\ 
 +\\ 
 +不管是下載失敗或md5驗證沒通過,安裝最後都會結束。 
 +==== Search for VM ==== 
 +首先可以從user guide的Locations on a Target System that Are Searched for JVMs中得知:​  
 +  - Windows搜尋%PATH%與Registry。 
 +  - Unix搜尋$PATH與某些固定放command line的路徑。 
 +(下圖來自[[https://​www.microway.com.au/​installshield/​InstallAnywhere2015_UserGuide.pdf|IA 2015 user guide]])\\ 
 +{{:​java:​installanywhere:​ia_laucher_search_path.png|}}\\ 
 +\\ 
 +如果你所需要的JVM為1.8以上,可以到Project > JVM Settings中,做如下圖的設定:​ \\ 
 +{{:​java:​installanywhere:​ia_vm_restriction.png|}}
 ===== Reference ===== ===== Reference =====
   * [[http://​technews.tw/​2016/​12/​20/​oracle-finally-targets-java-non-payers/​|Oracle 開始追討 Java 授權費,企業客戶頭痛]]   * [[http://​technews.tw/​2016/​12/​20/​oracle-finally-targets-java-non-payers/​|Oracle 開始追討 Java 授權費,企業客戶頭痛]]
- +  * [[https://​www.microway.com.au/​installshield/​InstallAnywhere2015_UserGuide.pdf|InstallAnywhere2015 UserGuide]] 
 +  * [[https://​briian.com/​6457/​|MD5、SHA1、CRC32 驗證碼檢測工具-HashMyFiles v2.21]] 
 +===== 其它 ===== 
 +以上方式只是告訴你在使用without VM去build installer後,當installer執行時獲得JVM的方法。然而在轉換這種方法後,installer是否會有其它side effect,就需要自行測試。畢竟user的環境是複雜滴~\\ 
 +\\ 
 +舉例來說,使用現有的jvm後,如果你的installer內原本會透過$lax.user.dir$$/​$resource$/​$jre$/​$bin$/​$java的方式去執行某些動作,就會有問題;如果用下載的就不會有問題。面對這問題,可以把java執行路徑改為:​ 
 +<code java> 
 +# 以linux為例 
 +# $prop.JAVA_PROPERTY$ 代表要透過InstallAnywhere取得java properties 
 +$prop.java.home$$/​$bin$/​$java -version 
 +</​code>​ 
 +=====    ===== 
 +---- 
 +\\ 
 +~~DISQUS~~