在Linux系統上安裝Spring boot應用


Unix/Linux 服務

systemd 服務

操作過程

1. 安裝了JDK的centOS7虛擬機

注意下載linux版本JDK的時候不能直接通過wget這種直接鏈接下載,否則會解壓不成功,應該打開原官網,點擊同意許可后點擊下載(這種方式下載很慢),比較好的方式是復制下載頁的地址到迅雷,通過迅雷打開該下載頁,同意許可后點擊下載。

下載后解壓、配置環境變量

tar -zxvf jdk1.8.0_211.jar.gz 

環境變量配置:/etc/profile 文件最后添加如下

export JAVA_HOME=/var/java/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

 

添加環境變量之后,執行source /etc/profile,讓環境變量生效

2. 准備好要安裝的spring boot應用程序
2.1 要想安裝成功,尤其要注意pom文件的有關插件的配置。正確示例如下:
<build>
   <plugins>
     <plugin>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-maven-plugin</artifactId>
       <configuration>
         <mainClass>com.itsherman.dcm.Application</mainClass>
         <executable>true</executable>
       </configuration>
       <executions>
         <execution>
           <goals>
             <goal>repackage</goal>
           </goals>
         </execution>
       </executions>
     </plugin>
   </plugins>
 </build>

 

如果只單單聲明了spring-boot-maven-plugin插件,忽略了后面的配置項,那么很可能你構建的程序包(jar)移植過去啟動不成功。報找不到主菜單屬性錯誤。

上面的問題主要是因為構建的可執行jar包中有一個META_INF文件夾,該文件夾下的MANIFEST.MF文件描述了改程序包的主要信息,其中缺少了Main-Class的一行。解決辦法是我們可以手動加上,或者按照上面的配置,尤其不能缺少execution的配置項,然后重新執行mvn install。重新生成jar包以后通過winrar工具打開,檢查MANIFEST.MF文件的信息。

一般完整的文件信息如下:

Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: Sherman Start-Class: com.itsherman.dcm.Application Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Spring-Boot-Version: 2.1.5.RELEASE Created-By: Apache Maven 3.6.0 Build-Jdk: 1.8.0_172 Main-Class: org.springframework.boot.loader.JarLauncher 

沒問題之后,可以嘗試在本地使用java -jar myapp.jar 命令執行一下

3. 通過xftp等文件移植工具將jar包移植到【1】 步驟的虛擬機上
4. 在虛擬機上 /etc/systemd/system 下編寫服務的配置文件,參考實例如下:
[Unit]
Description=myapp
After=syslog.target

[Service]
User=hadoop
ExecStart=/var/java/jdk1.8.0_211/bin/java -jar /home/hadoop/myapp/dev-manager.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

 

  • Description: 程序的描述信息
  • User: 系統用戶
  • ExecStart: 程序啟動的命令

編寫好改配置文件之后,保存,退出

. 啟動服務

刷新服務配置信息

systemctl daemon-reload 

啟動服務

systemctl start myapp.service 

開機啟動服務

systemctl enable myapp.service 

查看服務狀態信息

systemctl status myapp.service 
6.測試

即打開瀏覽器,訪問服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM