一文教會(huì)你cmd命令運(yùn)行java程序
1.普通項(xiàng)目(不帶lib文件夾)
1.在桌面上建一個(gè)名為com的文件夾,在文件夾中用記事本寫兩個(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)文章
如何利用SpringBoot搭建WebService服務(wù)接口
之前項(xiàng)目經(jīng)理想要開(kāi)發(fā)一個(gè)webservice的協(xié)議,給我一個(gè)星期的時(shí)間,后面用springboot開(kāi)發(fā)了webservice,這篇文章主要給大家介紹了關(guān)于如何利用SpringBoot搭建WebService服務(wù)接口的相關(guān)資料,需要的朋友可以參考下2023-11-11Dubbo+zookeeper搭配分布式服務(wù)的過(guò)程詳解
Dubbo作為分布式架構(gòu)比較后的框架,同時(shí)也是比較容易入手的框架,適合作為分布式的入手框架,下面是簡(jiǎn)單的搭建過(guò)程,對(duì)Dubbo+zookeeper分布式服務(wù)搭建過(guò)程感興趣的朋友一起看看吧2022-04-04mybatis?resultMap之collection聚集兩種實(shí)現(xiàn)方式
本文主要介紹了mybatis?resultMap之collection聚集兩種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09jmeter接口測(cè)試教程及接口測(cè)試流程詳解(全網(wǎng)僅有)
Jmeter是由Apache公司開(kāi)發(fā)的一個(gè)純Java的開(kāi)源項(xiàng)目,即可以用于做接口測(cè)試也可以用于做性能測(cè)試。本文給大家分享jmeter接口測(cè)試教程及接口測(cè)試流程,感興趣的朋友跟隨小編一起看看吧2021-12-12HashMap原理及put方法與get方法的調(diào)用過(guò)程
這篇文章主要介紹了HashMap原理及put方法與get方法的調(diào)用過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09java HttpURLConnection 發(fā)送文件和字符串信息
這篇文章主要介紹了java HttpURLConnection 發(fā)送文件和字符串信息的相關(guān)資料,需要的朋友可以參考下2017-06-06bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索的實(shí)例
下面小編就為大家?guī)?lái)一篇bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時(shí)的兩種操作方式
這篇文章主要介紹了java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時(shí)的兩種操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11五種SpringBoot實(shí)現(xiàn)數(shù)據(jù)加密存儲(chǔ)的方式總結(jié)
這篇文章主要為大家詳細(xì)介紹了五種常見(jiàn)數(shù)據(jù)加密存儲(chǔ)的方法(結(jié)合SpringBoot和MyBatisPlus框架進(jìn)行實(shí)現(xiàn)),文中的示例代碼講解詳細(xì),需要的可以參考下2023-11-11