public class CommandLineArg{
成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計,仁和網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:仁和等地區(qū)。仁和做網(wǎng)站價格咨詢:18980820575
public static void main(String[] args){
System.out.print("讀入的命令行參數(shù):");
Scanner read=new Sanner(System.in);
while(read.hasNextLine()){
System.out.println(read.nextLine());
}
}
}
這個不是要您通過鍵盤在程序運行期間讀取數(shù)字,而是要您從main的參數(shù)args里面獲取要相加的參數(shù)。
用慣了控制臺的java程序之后,最印象深刻的是其的簡單與快捷,雖沒有圖形界面那樣吸引人的眼球,但卻也足以迷倒眾生。那么java命令行參數(shù)有哪些呢?跟gkstk小編一起來學(xué)習(xí)吧!
控制臺程序的運行少不了要通過控制臺來傳遞參數(shù),譬如:
Sh代碼
ls -la
這是shell腳本的常用命令,其就是通過后置參數(shù)來傳遞相關(guān)信息。UNIX環(huán)境為C語言中提供了getopt()這樣的函數(shù)可以解析后置參數(shù),這個函數(shù)是很實用很強大的,但Java就...(我Google了一下,倒沒有怎么找出來)。大概是這個功能對Java來說太不足掛齒了吧,但總得有個解決方法才行。
下面就是一個代碼實例,用以說明。
這個實例運行的結(jié)果是運行在控制臺,并允許可選的輸入?yún)?shù):
Sh代碼
java TestOpt -i 89 -b -s TestString
那么就會設(shè)置幾個prarameter的值
Java代碼
public class TestOpt {
public static void main(String[] args) {
/*
* 這里先取默認(rèn)值,因為不是所有參數(shù)都會被用戶提供
*/
boolean prarameter1 = false;
int prarameter2 = 0;
String prarameter3 = "";
/*
* 設(shè)置一個offset變量,用來定位相關(guān)信息
*/
int optSetting = 0;
for (; optSetting args.length; optSetting++) {
if ("-b".equals(args[optSetting])) {
prarameter1 = true;
} else if ("-i".equals(args[optSetting])) {
prarameter2 = Integer.parseInt(args[++optSetting]);
} else if ("-s".equals(args[optSetting])) {
prarameter3 = args[++optSetting];
}
}
/*
* 這里我只是打印出來相關(guān)的設(shè)置信息,具體的行為肯定是要自己取定義打
*/
System.out.println(prarameter1);
System.out.println(prarameter2);
System.out.println(prarameter3);
}
}
這種類似的方法估計應(yīng)該有很多吧,但這個應(yīng)該算是比較輕量級的。當(dāng)然若參數(shù)非常多(同時也得進行驗證輸入)
當(dāng)你使用命令行的形式運行.class文件時,向你的類傳遞參數(shù).
C:\java
YourClassName
參數(shù)1
[參數(shù)2
參數(shù)3
....]
參數(shù)之間用一個空格作為間隔符.
String[] args 這個字符串?dāng)?shù)組是保存運行main函數(shù)時輸入的參數(shù)的,例如main函數(shù)所在的類名為test
那么你在cmd運行
java
test
a b
c 時,args[0]
= a
,args[1]=b,
args[2]=c
你就可以在你的程序中調(diào)用你輸入的這些變量了。
args[]不就是那個字符串This is a simple Java program嗎?
-------完全不是的,你理解不對。這樣好了,你在運行的時候加個參數(shù),比如 java test XX。然后在你的main函數(shù)里面加這段話:System.out.println("arg is"+args[0]),然后看看輸出是什么?
是不是這個:
This is a simple Java program
arg is XX
在運行時輸入java test xx yy zz,并且在你的main函數(shù)里面加這段話:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看輸出是什么?
是不是:
This is a simple Java program
arg is xx yy zz
現(xiàn)在你理解了嗎。。。
如果沒關(guān)系,為什么程序中去掉String args[]會出現(xiàn)錯誤?
--------之所以去掉會出錯在于,不帶String args[]的main函數(shù)和帶String args[]的main函數(shù),本質(zhì)上已經(jīng)不是同一個函數(shù)了,java 本身不存在不帶String args[]的main函數(shù),所以當(dāng)然出錯了。
public?static?void?main(String[]?args)?{
try?{
double?top?=?Double.valueOf(args[0]);
double?bottom?=?Double.valueOf(args[1]);
double?height?=?Double.valueOf(args[2]);
double?area?=?(top?+?bottom)?*?height?/?2;
System.out.println("梯形面積是:"?+?area);
}?catch?(Exception?e)?{
System.out.println("命令行參數(shù)錯誤");
}
}
javac xxx.java
java xxx 2 4 5
網(wǎng)站標(biāo)題:java命令行參數(shù)代碼 java 運行參數(shù)
URL標(biāo)題:http://chinadenli.net/article4/hgscoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、微信小程序、品牌網(wǎng)站設(shè)計、做網(wǎng)站、App設(shè)計、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)