在 Java 開發(fā)與運維中,“啟動 Java 服務” 是核心操作。無論是簡單的 Java 小程序,還是 Spring Boot、Dubbo 等框架構(gòu)建的企業(yè)級服務,都需通過特定命令啟動。很多開發(fā)者常困惑于 “不同場景用什么命令”“后臺啟動怎么配置”“啟動后如何管理進程”,小編將分場景拆解 Java 服務的啟動方法,覆蓋 Windows、Linux 兩大系統(tǒng),詳解命令語法與實操技巧,助你高效啟動并管理 Java 服務。
一、Java 服務啟動前的核心前提
啟動 Java 服務前需完成兩項準備工作,避免因環(huán)境問題導致啟動失?。?/p>
1. 確認 JDK 已正確安裝配置
Java 服務依賴 JDK(Java Development Kit)的運行環(huán)境,需先驗證 JDK 是否就緒:
驗證命令:在終端(Linux)或命令提示符(Windows)輸入java -version,若顯示 JDK 版本信息(如java version "1.8.0_381"),說明環(huán)境正常;
若報錯 “java 不是內(nèi)部或外部命令”:需配置JAVA_HOME環(huán)境變量(Windows 在 “系統(tǒng)屬性→高級→環(huán)境變量” 中設置,Linux 在/etc/profile或~/.bashrc中添加export JAVA_HOME=/usr/local/jdk1.8.0_381),并將%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(Linux)加入PATH。
2. 準備 Java 服務的啟動文件
不同類型的 Java 服務,啟動依賴的文件不同:
簡單 Java 程序:需編譯后的.class文件(如HelloWorld.class),或打包后的.jar文件(通過javac編譯、jar命令打包生成);
框架服務(Spring Boot/Dubbo):通常是打包后的可執(zhí)行.jar文件(如spring-boot-demo-1.0.0.jar),由 Maven/Gradle 構(gòu)建生成,內(nèi)置 Tomcat 等容器,可直接啟動;
傳統(tǒng) Web 服務(WAR 包):需部署到 Tomcat、Jetty 等容器,通過啟動容器間接啟動 Java 服務(后文單獨說明)。

二、Java 服務啟動方法:分場景詳解(Windows/Linux 通用)
根據(jù) Java 服務的類型(簡單程序 / 框架服務)與啟動需求(前臺 / 后臺),需選擇不同的命令,核心場景分為三類:
(一)場景 1:啟動簡單 Java 程序(.class/.jar 文件)
適用于開發(fā)測試階段的小型 Java 程序,如工具類、控制臺應用,啟動命令簡潔直觀:
1. 啟動.class 文件(未打包的單個類)
若服務僅一個編譯后的.class文件(如HelloWorld.class,含main方法),直接用java命令啟動:
命令語法:java 類名(無需加.class后綴);
實操示例:
假設HelloWorld.class在D:\java-project目錄(Windows)或/home/java-project目錄(Linux):
Windows:先cd D:\java-project,再輸入java HelloWorld,程序會在前臺運行,輸出控制臺日志;
Linux:先cd /home/java-project,再輸入java HelloWorld,效果與 Windows 一致。
注意:若類屬于包(如com.example.HelloWorld),需進入包的上層目錄,命令改為java com.example.HelloWorld(如類文件在com/example/HelloWorld.class,需在com的上層目錄執(zhí)行命令)。
2. 啟動可執(zhí)行.jar 文件(打包后的程序)
若程序已打包為可執(zhí)行.jar文件(需在MANIFEST.MF中指定Main-Class),用java -jar命令啟動:
命令語法:java -jar jar文件名;
實操示例:
啟動demo.jar文件:
Windows:cd D:\java-project → java -jar demo.jar;
Linux:cd /home/java-project → java -jar demo.jar;
特點:前臺啟動,終端關(guān)閉則服務停止,適合開發(fā)測試;若需傳遞參數(shù)(如配置文件路徑),可在命令后添加,如java -jar demo.jar --spring.profiles.active=prod(Spring Boot 程序指定生產(chǎn)環(huán)境配置)。
(二)場景 2:啟動 Spring Boot/Dubbo 等框架服務(企業(yè)級常用)
企業(yè)級 Java 服務多基于 Spring Boot、Dubbo 等框架開發(fā),打包為可執(zhí)行.jar文件,需區(qū)分 “前臺啟動”(便于調(diào)試)與 “后臺啟動”(生產(chǎn)環(huán)境常用):
1. 前臺啟動(開發(fā)調(diào)試用)
與簡單.jar 文件啟動命令一致,適合開發(fā)階段查看實時日志:
命令:java -jar spring-boot-demo.jar;
優(yōu)勢:啟動后直接在終端輸出日志,按Ctrl+C可快速停止服務,方便調(diào)試時查看報錯信息;
注意:Spring Boot 服務默認端口為 8080,若端口被占用,可通過命令指定端口:java -jar spring-boot-demo.jar --server.port=8081。
2. 后臺啟動(生產(chǎn)環(huán)境用)
生產(chǎn)環(huán)境需服務在后臺持續(xù)運行,即使終端關(guān)閉也不停止,Windows 與 Linux 的實現(xiàn)方式不同:
(1)Linux 系統(tǒng):用nohup或screen實現(xiàn)后臺啟動
方法 1:nohup命令(最常用)
語法:nohup java -jar jar文件名 > 日志文件名 2>&1 &
示例:啟動spring-boot-demo.jar并將日志輸出到service.log:
nohup java -jar spring-boot-demo.jar > service.log 2>&1 &
命令解析:nohup(忽略終端關(guān)閉信號)、> service.log(將標準輸出重定向到日志文件)、2>&1(將錯誤輸出合并到標準輸出)、最后一個&(后臺運行);
查看日志:tail -f service.log(實時查看日志)、cat service.log(查看全部日志);
停止服務:先通過ps -ef | grep java找到進程 ID(PID),再用kill -9 PID終止(如ps -ef | grep spring-boot-demo.jar找到 PID 為 1234,執(zhí)行kill -9 1234)。
方法 2:screen命令(需安裝,適合需后續(xù)交互的場景)
若需后續(xù)進入服務的終端界面(如查看實時日志),可通過screen創(chuàng)建會話:
安裝 screen(CentOS:yum install screen,Ubuntu:apt install screen);
創(chuàng)建會話:screen -S java-service(java-service為會話名);
在會話中啟動服務:java -jar spring-boot-demo.jar;
脫離會話:按Ctrl+A+D(服務仍在后臺運行);
重新進入會話:screen -r java-service;
終止服務:在會話中按Ctrl+C,或退出會話后用kill命令終止進程。
(2)Windows 系統(tǒng):用 “任務計劃程序” 或start /b后臺啟動
方法 1:start /b命令(臨時后臺啟動)
語法:start /b java -jar jar文件名 > 日志文件名 2>&1
示例:start /b java -jar spring-boot-demo.jar > service.log 2>&1
特點:服務在后臺運行,命令提示符可關(guān)閉,但需通過任務管理器終止進程(找到java.exe進程,右鍵 “結(jié)束任務”);
缺點:重啟電腦后服務不自動啟動,適合臨時需求。
方法 2:注冊為 Windows 服務(開機自啟,生產(chǎn)推薦)
若需服務開機自動啟動,可將 Java 服務注冊為 Windows 系統(tǒng)服務,需借助工具(如winsw):
下載winsw(官網(wǎng):https://github.com/winsw/winsw),重命名為java-service.exe;
創(chuàng)建配置文件java-service.xml(與java-service.exe同目錄),內(nèi)容示例:
TypeScript取消自動換行復制
<service>
<id>JavaService</id>
<name>Java Service(Spring Boot Demo)</name>
<description>Java服務(Spring Boot Demo)</description>
<executable>java</executable>
<arguments>-jar "D:\java-project\spring-boot-demo.jar"</arguments>
<logpath>D:\java-project\logs</logpath>
<logmode>rotate</logmode>
</service>
安裝服務:在命令提示符(管理員權(quán)限)中執(zhí)行java-service.exe install;
啟動服務:net start JavaService(或在 “服務” 窗口手動啟動);
停止 / 卸載服務:net stop JavaService、java-service.exe uninstall。
(三)場景 3:啟動傳統(tǒng) Web 服務(WAR 包部署到容器)
若 Java 服務是 WAR 包(如基于 SSH、SSM 框架的 Web 項目),需部署到 Tomcat、Jetty 等容器,通過啟動容器間接啟動服務:
1. Tomcat 容器啟動示例(Windows/Linux 通用)
步驟 1:部署 WAR 包
將demo.war文件復制到 Tomcat 的webapps目錄(如 Linux 的/usr/local/tomcat/webapps,Windows 的D:\tomcat\webapps);
步驟 2:啟動 Tomcat
Linux:進入 Tomcat 的bin目錄,執(zhí)行./startup.sh(前臺啟動)或nohup ./startup.sh > catalina.out 2>&1 &(后臺啟動);
Windows:進入bin目錄,雙擊startup.bat(前臺啟動,會彈出終端窗口),或執(zhí)行start /b startup.bat(后臺啟動);
訪問服務:啟動后通過http://服務器IP:8080/demo訪問(demo為 WAR 包名,8080 為 Tomcat 默認端口);
停止容器:Linux 執(zhí)行./shutdown.sh,Windows 雙擊shutdown.bat。
三、Java 服務啟動常見問題排查
“端口被占用” 報錯
用端口查看命令找到占用進程并終止:
Linux:ss -tuln | grep 8080(查看 8080 端口占用),kill -9 PID終止進程;
Windows:netstat -ano | findstr "8080",在任務管理器中結(jié)束對應 PID 的進程。
“找不到主類” 報錯
檢查.jar 文件的MANIFEST.MF是否配置Main-Class(可通過jar -tf demo.jar | grep MANIFEST.MF查看路徑,用cat或記事本打開文件驗證);若為 Spring Boot 項目,確保pom.xml中配置了spring-boot-maven-plugin插件(負責打包可執(zhí)行.jar)。
啟動后日志無輸出或服務無響應
查看日志文件(如service.log)定位錯誤,常見原因:配置文件路徑錯誤(需通過--spring.config.location指定)、數(shù)據(jù)庫連接失敗(檢查數(shù)據(jù)庫地址與賬號密碼)、依賴缺失(確保.jar 包打包完整,無遺漏依賴)。
Java 服務啟動需根據(jù) “程序類型”(.class/.jar/WAR)與 “運行環(huán)境”(Windows/Linux)選擇命令:簡單程序用java或java -jar前臺啟動,開發(fā)調(diào)試便捷;企業(yè)級框架服務(Spring Boot)在 Linux 用nohup后臺啟動并記錄日志,在 Windows 推薦注冊為系統(tǒng)服務實現(xiàn)開機自啟;傳統(tǒng) Web 服務需部署到 Tomcat 等容器啟動。掌握這些方法,結(jié)合日志排查問題,就能高效啟動并管理 Java 服務,保障服務穩(wěn)定運行。