Java中啟動jar包的方式匯總
1. 標準啟動(指定 -jar 參數(shù))
java -jar your-application.jar
要求:JAR 的 MANIFEST.MF 文件中必須包含 Main-Class 屬性。
特點:自動識別入口類,忽略 -classpath 參數(shù)。
2. 顯式指定主類(無需 MANIFEST.MF)
java -cp your-application.jar com.example.MainClass
適用場景:
JAR 未配置 Main-Class。
需手動指定入口類(覆蓋 MANIFEST.MF 中的定義)。
依賴管理:若需添加外部庫,用分號(Windows)或冒號(Linux/Mac)分隔:
Windows java -cp "lib/*;your-application.jar" com.example.MainClass Linux/Mac java -cp "lib/*:your-application.jar" com.example.MainClass
3. 添加 JVM 參數(shù)
java -Xmx1024m -Dconfig.file=/path/config.conf -jar your-application.jar
常用參數(shù):
-Xmx1024m:設置最大堆內存為 1024MB。
-Dproperty=value:設置系統(tǒng)屬性(如配置文件路徑)。
4. 后臺運行(Linux/Mac)
nohup java -jar your-application.jar > app.log 2>&1 &
作用:
nohup:忽略掛斷信號(退出終端后繼續(xù)運行)。
app.log:重定向標準輸出到文件。
2>&1:將錯誤輸出合并到標準輸出。
&:后臺運行。
5. Windows 后臺運行
start /B javaw -jar your-application.jar > app.log 2>&1
注意:
javaw.exe 無控制臺窗口(適合 GUI 應用)。
日志需手動重定向(如 > app.log)。
6. 模塊化啟動(Java 9+)
java --module-path libs --module com.example/com.example.MainClass
適用場景:項目使用 Java 模塊系統(tǒng)(module-info.java)。
7. 通過腳本封裝
創(chuàng)建啟動腳本(如 start.sh 或 start.bat):
Linux/Mac(start.sh) java -Xms256m -Xmx1024m -jar /path/to/your-application.jar
@echo off java -Xms256m -Xmx1024m -jar C:\path\to\your-application.jar
8. 使用第三方工具
jpackage (JDK 14+):打包成原生安裝包(含啟動器)。
Spring Boot 項目
mvn spring-boot:run # 直接運行(無需先打包)
系統(tǒng)服務:
Linux:通過 systemd 托管。
Windows:封裝成服務(如使用 WinSW)。
常見問題解決
No main manifest attribute:JAR 缺失 Main-Class,需用方式 2 顯式指定主類。
依賴沖突:確保所有依賴 JAR 在 -cp 路徑中(使用 lib/* 通配符)。
權限問題(Linux):為腳本添加執(zhí)行權限:
chmod +x start.sh
根據(jù)需求選擇合適的方式,通常 java -jar 或 -cp 是最常用的方法。
到此這篇關于Java中啟動jar包的方式匯總的文章就介紹到這了,更多相關Java啟動jar包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java利用Spire.PDF for Java實現(xiàn)將TXT轉換為PDF
在現(xiàn)代企業(yè)和個人開發(fā)中,文檔格式的轉換是一項常見且重要的任務,本文將深入探討如何利用功能強大的Spire.PDF for Java庫,輕松實現(xiàn)Java中TXT到PDF的轉換,希望對大家有所幫助2025-11-11
maven項目后出現(xiàn)‘parent.relativePath’ of POM錯誤時的解決方法
在Springboot項目啟動時,項目報錯‘parent.relativePath’ of POM問題,項目無法正常啟動,本文就來介紹一下解決方法,感興趣的可以了解一下2023-10-10
SpringBoot實現(xiàn)自定義Starter的步驟詳解
在SpringBoot中,Starter是一種特殊的依賴,它可以幫助我們快速地集成一些常用的功能,例如數(shù)據(jù)庫連接、消息隊列、Web框架等。在本文中,我們將介紹如何使用Spring Boot實現(xiàn)自定義Starter,需要的朋友可以參考下2023-06-06
Alibaba?Nacos配置中心動態(tài)感知原理示例解析
這篇文章主要介紹了Alibaba?Nacos配置中心動態(tài)感知原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08

