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引數宣告我們執行的目的。
相關文章
- 通過Nvidia簽名的二進位制檔案執行系統命令
- MySQL二進位制檔案(binlog)MySql
- 二進位制檔案視覺化(二)視覺化
- Git處理二進位制檔案Git
- 檔案操作(二進位制拷貝)
- 介面返回二進位制檔案的下載。
- 二進位制檔案記憶體對映記憶體
- 二進位制檔案安裝安裝etcd
- mysqlbinlog 處理二進位制日誌檔案的工具MySql
- C++ 讀取二進位制檔案到char*C++
- 檢視寶塔mysql二進位制檔案 mysqlbinlogMySql
- 【Linux】檢視二進位制檔案內容_hexdumpLinux
- golang: 給二進位制檔案增加版本資訊Golang
- 根據介面返回的二進位制流匯出檔案
- JS下載後臺介面返回的二進位制檔案JS
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 有幾種工具可以將 PHP 指令碼編譯成二進位制可執行檔案EXEPHP指令碼編譯
- 二進位制與二進位制運算
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 進位制詳解:二進位制、八進位制和十六進位制
- od 轉儲 二進位制檔案常用命令
- flutter-讀寫二進位制檔案到裝置Flutter
- 前端怎麼處理二進位制檔案下載前端
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- 二進位制檔案和符號檔案(PDB)如何校驗是否匹配符號
- 文盤Rust -- 如何把配置檔案打包到二進位制檔案裡Rust
- JavaScript二進位制陣列建立注意點JavaScript陣列
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- WebLogic之Java反序列化漏洞利用實現二進位制檔案上傳和命令執行WebJava
- 教你如何進行數倉字串、二進位制、十六進位制互轉字串
- 二進位制
- (二進位制)
- 十進位制——二 (八、十六 )進位制
- C語言實現檔案複製功能(包括文字檔案和二進位制檔案)C語言
- 判斷檔案為文字檔案還是二進位制檔案(C語言實現)C語言
- CentOS6.5二進位制檔案安裝MySQL5.6.39CentOSMySql
- 使用 IDA 處理 U-Boot 二進位制流檔案boot