一文教會(huì)你cmd命令運(yùn)行java程序
1.普通項(xiàng)目(不帶lib文件夾)
1.在桌面上建一個(gè)名為com的文件夾,在文件夾中用記事本寫(xiě)兩個(gè)類文件,后綴改為.java。兩個(gè)類文件的內(nèi)容如下圖所示:

2.使用javac命令編譯主函數(shù),命令行為javac TestMain.java。結(jié)果可以看到自動(dòng)生成了兩個(gè).class文件。

3.使用java TestMain命令行運(yùn)行程序得到運(yùn)行結(jié)果如下:

2.帶lib文件夾的項(xiàng)目
實(shí)操代碼:
## 編譯文件 javac -d bin/ -Djava.ext.dirs=lib/ TestMain.java ## 進(jìn)入編譯文件的目錄 cd lib ## 運(yùn)行代碼 java -Djava.ext.dirs=../lib/ TestMain
具體講解:
項(xiàng)目結(jié)構(gòu)如圖:

帶有一個(gè)簡(jiǎn)單的jar包
首先 cd 到 java_test 工程目錄下
運(yùn)行如下命令:
javac -d bin/ -cp lib/junit-platform-commons-1.9.1.jar; TestMain.java
-d bin/表示把編譯的文件放到 bin 目錄下面,其中 bin 需要自己建立,當(dāng)然,不要這個(gè)命令也可以,文件就會(huì)默認(rèn)生成在當(dāng)前目錄位置。TestMain.java為需要編譯的運(yùn)行文件-cp lib/junit-platform-commons-1.9.1.jar;指定需要的依賴jar包的位置,多個(gè)jar使用;分割,最后一個(gè) jar 包的;后需要一個(gè)空格,即和TestMain.java隔了一個(gè)空格- 提示:
-cp lib/junit-platform-commons-1.9.1.jar;命令可以換成-Djava.ext.dirs=lib/-Djava.ext.dirs是設(shè)置 lib 包所在的目錄
ok 看下編譯好的文件

ok 接下來(lái) 運(yùn)行項(xiàng)目
- **先進(jìn)入 bin 目錄 **
**cd bin** - **運(yùn)行項(xiàng)目 **
java -cp ../lib/gson-2.10.1.jar; TestMain
項(xiàng)目運(yùn)行如下

ok 一個(gè)簡(jiǎn)單的java 工程就運(yùn)行完了
但是 貌似有些繁瑣, 需要手動(dòng)鍵入 java文件 以及相應(yīng)的jar包 很是麻煩,
so 可以用 shell 來(lái)腳本來(lái)簡(jiǎn)化相關(guān)操作
shell 文件整理如下:
#!/bin/bash
echo "build start"
JAR_PATH=libs
BIN_PATH=bin
SRC_PATH=src
# java文件列表目錄
SRC_FILE_LIST_PATH=src/sources.list
#生所有的java文件列表
rm -f $SRC_PATH/sources
find $SRC_PATH/ -name *.java > $SRC_FILE_LIST_PATH
#刪除舊的編譯文件 生成bin目錄
rm -rf $BIN_PATH/
mkdir $BIN_PATH/
#生成依賴jar包 列表
for file in ${JAR_PATH}/*.jar;
do
jarfile=${jarfile}:${file}
done
echo "jarfile = "$jarfile
#編譯
javac -d $BIN_PATH/ -cp $jarfile @$SRC_FILE_LIST_PATH
#運(yùn)行
java -cp $BIN_PATH$jarfile com.zuiapps.danmaku.server.Main
有一點(diǎn)需要注意的是, javac -d $BIN_PATH/ -cp jarfile @jarfile @jarfile @SRC_FILE_LIST_PATH在要編譯的文件很多時(shí)候,一個(gè)個(gè)敲命令會(huì)顯得很長(zhǎng),也不方便修改,
可以把要編譯的源文件列在文件中,在文件名前加@,這樣就可以對(duì)多個(gè)文件進(jìn)行編譯,
以上就是吧java文件放到 $SRC_FILE_LIST_PATH 中去了
文件內(nèi)容如下:

總結(jié):編譯 :
- 需要編譯所有的java文件
- 依賴的java 包都需要加入到 classpath 中去
- 最后設(shè)置 編譯后的 class 文件存放目錄 即 -d bin/
- java文件過(guò)多是可以使用 @$SRC_FILE_LIST_PATH 把他們放到一個(gè)文件中去
運(yùn)行:1.需要把 編譯時(shí)設(shè)置的bin目錄和 所有jar包加入到 classpath 中去
到此這篇關(guān)于如何使用cmd命令運(yùn)行java程序的文章就介紹到這了,更多相關(guān)cmd命令運(yùn)行java內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring MVC學(xué)習(xí)筆記之json格式的輸入和輸出
本篇文章主要介紹了Spring MVC學(xué)習(xí)筆記之json格式的輸入和輸出,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-03-03
Java實(shí)現(xiàn)讀取resources目錄下的文件路徑的九種方式
本文主要介紹了Java實(shí)現(xiàn)讀取resources目錄下的文件路徑的九種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Springboot集成Sentinel?組件實(shí)現(xiàn)基本限流功能(快速入門(mén))
Sentinel是阿里巴巴開(kāi)發(fā)的面向云原生微服務(wù)的高可用流控防護(hù)組件,支持流量控制、熔斷降級(jí)、系統(tǒng)負(fù)載保護(hù)等多維度防護(hù),適用于秒殺、消息削峰填谷等場(chǎng)景,本文給大家介紹Springboot集成Sentinel組件實(shí)現(xiàn)基本限流功能,感興趣的朋友跟隨小編一起看看吧2025-12-12
java+selenium實(shí)現(xiàn)自動(dòng)化操作瀏覽器
在Web自動(dòng)化的操作中,我們通常需要使用一些方法來(lái)操作瀏覽器,這篇文章主要來(lái)和大家介紹一下在自動(dòng)化測(cè)試的時(shí)候,我們常見(jiàn)的一些瀏覽器操作有哪些,希望對(duì)大家有一定的幫助2025-05-05
Mybatis mapper接口動(dòng)態(tài)代理開(kāi)發(fā)步驟解析
這篇文章主要介紹了Mybatis mapper接口動(dòng)態(tài)代理開(kāi)發(fā)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Springboot修改post請(qǐng)求接口入?yún)⒒蛑匦沦x值方式
這篇文章主要介紹了Springboot修改post請(qǐng)求接口入?yún)⒒蛑匦沦x值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
使用@RequiredArgsConstructor注解來(lái)取代繁瑣的@Autowrired
有了@RequiredArgsConstructor注解,我們就可以減少@Autowired的書(shū)寫(xiě),本文主要介紹了使用@RequiredArgsConstructor注解來(lái)取代繁瑣的@Autowrired,感興趣的可以了解一下2022-04-04

