public class CommandLineArg{
成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設計、成都外貿網(wǎng)站建設與策劃設計,仁和網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:仁和等地區(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小編一起來學習吧!
控制臺程序的運行少不了要通過控制臺來傳遞參數(shù),譬如:
Sh代碼
ls -la
這是shell腳本的常用命令,其就是通過后置參數(shù)來傳遞相關信息。UNIX環(huán)境為C語言中提供了getopt()這樣的函數(shù)可以解析后置參數(shù),這個函數(shù)是很實用很強大的,但Java就...(我Google了一下,倒沒有怎么找出來)。大概是這個功能對Java來說太不足掛齒了吧,但總得有個解決方法才行。
下面就是一個代碼實例,用以說明。
這個實例運行的結果是運行在控制臺,并允許可選的輸入?yún)?shù):
Sh代碼
java TestOpt -i 89 -b -s TestString
那么就會設置幾個prarameter的值
Java代碼
public class TestOpt {
public static void main(String[] args) {
/*
* 這里先取默認值,因為不是所有參數(shù)都會被用戶提供
*/
boolean prarameter1 = false;
int prarameter2 = 0;
String prarameter3 = "";
/*
* 設置一個offset變量,用來定位相關信息
*/
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];
}
}
/*
* 這里我只是打印出來相關的設置信息,具體的行為肯定是要自己取定義打
*/
System.out.println(prarameter1);
System.out.println(prarameter2);
System.out.println(prarameter3);
}
}
這種類似的方法估計應該有很多吧,但這個應該算是比較輕量級的。當然若參數(shù)非常多(同時也得進行驗證輸入)
當你使用命令行的形式運行.class文件時,向你的類傳遞參數(shù).
C:\java
YourClassName
參數(shù)1
[參數(shù)2
參數(shù)3
....]
參數(shù)之間用一個空格作為間隔符.
String[] args 這個字符串數(shù)組是保存運行main函數(shù)時輸入的參數(shù)的,例如main函數(shù)所在的類名為test
那么你在cmd運行
java
test
a b
c 時,args[0]
= a
,args[1]=b,
args[2]=c
你就可以在你的程序中調用你輸入的這些變量了。
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)在你理解了嗎。。。
如果沒關系,為什么程序中去掉String args[]會出現(xiàn)錯誤?
--------之所以去掉會出錯在于,不帶String args[]的main函數(shù)和帶String args[]的main函數(shù),本質上已經(jīng)不是同一個函數(shù)了,java 本身不存在不帶String args[]的main函數(shù),所以當然出錯了。
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)站標題:java命令行參數(shù)代碼 java 運行參數(shù)
URL標題:http://muchs.cn/article4/hgscoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、微信小程序、品牌網(wǎng)站設計、做網(wǎng)站、App設計、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)