6.3建立自己執行的二進位制檔案
這個章節,我們將使用已經存在的應用。我們學習如何修改預設的啟動指令碼,如,JVM啟動引數 -D啟動系統配置,JVM記憶體等。
這個章節要確保我們使用的Spring Boot版本是1.3以上。如果不是的話,請在build.gradle加入以下程式碼。(注意,我們自己建立的db-counter-starter/build.gradle也要新增)
ext { |
我們需要宣告application外掛到build.gradle檔案中,不再是自動包含Spring Boot Gradle外掛。新增的命令是:apply plugin: 'application'
6.3.1如何使用
- 建立預設的可執行檔案是非常容易,只要我們執行./gradlew clean bootRepackage命令即可。
- 我們可以通過執行./build/libs/bookpub-0.0.1-SNAPSHOT.jar來啟動專案。
- 在生產環境中,我們老百姓稍微調整我們的環境配置,如GC配置、記憶體配置等。為了達到這個,我們將會修改預設的lauch.script檔案。讀者可以從:https://github.com/spring-projects/spring-boot.git這個地方的下載,目錄是:spring-boot/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/main/resources/org/springframework/boot/loader/tools/
需要注意的是,lauch.script檔案只是用於Linux和OS X的環境下。如果你需要在windows上執行,你需要自己寫一個launch.script的檔案,且這個檔案是可以執行在windows的shell命令中。
- 我們修改launch.scipt檔案,新增在大約288行的地方。
... |
- 接著,我們需要在build.gradle中加入如下程式碼:
applicationDefaultJvmArgs = [ "-Xms128m", "-Xmx256m" ] springBoot { classifier = 'exec' embeddedLaunchScript = file('launch.script') embeddedLaunchScriptProperties = ['jvm_options' : applicationDefaultJvmArgs.join(' ')] } |
- 執行./gradlew clean bootRun 命令,你將會看到JConsole VM Summary,我們也可以看到我們配置的引數資訊:
- 我們也可以執行./gradlew clean bootRepackage命令和執行./build/libs/bookpub-0.0.1-SNAPSHOT-exec.jar的包,也可以看到與上面同樣的資訊。
- 我們也可以使用JAVA_OPTS環境變數來過載JVM的引數。我們可以使用JAVA_OPTS=-Xmx128m./build/libs/bookpub-0.0.1-SHAPSHOT-exec.jar命令和這樣可以顯示如下資訊:
6.3.2使用原理
在我們定製的launch.script檔案中,我們新增了jvmopts=”{{jvm_options:}}”,在樣在建立和打包時會取代jvm_options的引數。這個是宣告是在build.gradle檔案中作為embeddedLaunchScriptProperties的引數:embeddedLaunchScriptProperties =
['jvm_options' : applicationDefaultJvmArgs.join(' ')]
JVM引數是硬編碼的,它更好的包含如何讓我們的應用使用bootRun任務和如何讓它執行我們的JAR。為了達到這人目的,我們使用了applicationDefaultJvmArgs引數宣告我們執行的目的。
相關文章
- Oracle建立二進位制檔案索引的方法(轉)Oracle索引
- 淺談從原始碼檔案到二進位制可執行檔案的過程原始碼
- 二進位制檔案複製
- php寫二進位制檔案PHP
- 二進位制檔案拷貝
- 通過Nvidia簽名的二進位制檔案執行系統命令
- 二進位制檔案視覺化(二)視覺化
- C#的二進位制檔案操作C#
- 文字檔案與二進位制檔案的區別
- (OEL 6.3) Mysql6.5二進位制安裝MySql
- 檔案操作(二進位制拷貝)
- Git處理二進位制檔案Git
- MySQL二進位制檔案(binlog)MySql
- 介面返回二進位制檔案的下載。
- Python讀寫二進位制檔案Python
- Java二進位制Class檔案格式解析Java
- c++ 二進位制儲存檔案C++
- 使用UltraEdit 拷貝二進位制檔案
- MySQL 匯出匯入二進位制檔案MySql
- UltraEdit--二進位制檔案編輯功能
- 用shell處理二進位制檔案(轉)
- UE複製貼上二進位制檔案
- 二進位制檔案記憶體對映記憶體
- golang: 給二進位制檔案增加版本資訊Golang
- Effective C# :建立二進位制元件C#元件
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 二進位制與二進位制運算
- 二進位制檔案安裝安裝etcd
- C++ 讀取二進位制檔案到char*C++
- C/C++ 二進位制讀寫 png 檔案C++
- 進位制詳解:二進位制、八進位制和十六進位制
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- JS下載後臺介面返回的二進位制檔案JS
- mysqlbinlog 處理二進位制日誌檔案的工具MySql
- 修改二進位制引數檔案(SPFILE)的方法之一
- std::ofstream由二進位制流寫檔案的問題
- 根據介面返回的二進位制流匯出檔案