當你使用命令行的形式運行.class文件時,向你的類傳遞參數.
C:\>java
YourClassName
參數1
[參數2
參數3
....]
參數之間用一個空格作為間隔符.
String[] args 這個字元串數組是保存運行main函數時輸入的參數的,例如main函數所在的類名為test
那麼你在cmd運行
java
test
a b
c 時,args[0]
= a
,args[1]=b,
args[2]=c
你就可以在你的程序中調用你輸入的這些變數了。
args[]不就是那個字元串This is a simple Java program嗎?
-------完全不是的,你理解不對。這樣好了,你在運行的時候加個參數,比如 java test XX。然後在你的main函數裡面加這段話:System.out.println("arg is"+args[0]),然後看看輸出是什麼?
是不是這個:
This is a simple Java program
arg is XX
在運行時輸入java test xx yy zz,並且在你的main函數裡面加這段話:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然後看看輸出是什麼?
是不是:
This is a simple Java program
arg is xx yy zz
現在你理解了嗎。。。
如果沒關系,為什麼程序中去掉String args[]會出現錯誤?
--------之所以去掉會出錯在於,不帶String args[]的main函數和帶String args[]的main函數,本質上已經不是同一個函數了,java 本身不存在不帶String args[]的main函數,所以當然出錯了。
② java 命令行 傳遞參數
不要在Java中處理「<」(重定向)符號,那是留給操作系統來處理的。
要想將將輸入從定向文件傳遞給Java程序,可採用如下辦法。
(1)首先製作批文件(Windows下為.bat文件,linux/UNIX下為.sh文件)。給你作個例子(以Windows為例,製作一個名稱為start.bat的文件):
@set/p A= >nul
@set/p B= >nul
@set/p C= >nul
@set/p D= >nul
@java 您的java啟動類名 %A% %B% %C% %D%
@set/p A= <nul
@set/p B= <nul
@set/p C= <nul
@set/p D= <nul
這里只有四個參數,您可以添加更多的參數。
之後編寫輸入重定向文件(in.txt),內容範例如下:
para1Value
para2Value
para3Value
...
在執行的時候,使用格式如下:
start.bat < in.txt
這時,您的Java啟動類.main才能接收到從定向文件里的參數。
建議在批文件中可以多設一些參數,即使輸入重定向文件內提供的參數值數量不足也沒有關系,操作系統不會傳遞沒無值參數。
③ java中怎樣輸入命令+參數
attrib是修改屬性的
首先用cd /d + 路徑 切換到你 example 類在的目錄
然後運行 java example + 參數
參數會保留在 args[] 中,然後自己處理就是了
④ 如何用命令行運行java程序及輸入main函數參數的輸入
main函數也可以帶參數。帶參數main函數的定義格式如下:
void main(int argc, char *argv[])
{
... ...
}
argc和argv是main函數的形式參數。這兩個形式參數的類型是系統規定的。如果main函數要帶參數,就是這兩個類型的參數;否則main函數就沒有參數。變數名稱argc和argv是常規的名稱,當然也可以換成其他名稱。
那麼,實際參數是如何傳遞給main函數的argc和argv的呢?我們知道,C程序在編譯和鏈接後,都生成一個exe文件,執行該exe文件時,可以直接執行;也可以在命令行下帶參數執行,命令行執行的形式為:
可執行文件名稱 參數1 參數2 ... ... 參數n
執行文件名稱和參數、參數之間均使用空格隔開。例如,在linux下運行程序./a.out 1 2 ,可執行文件名稱為./a.out,參數1為字元串1,參數2為2。
如果按照這種方法執行,命令行字元串將作為實際參數傳遞給main函數。具體為:
(1) 可執行文件名稱和所有參數的個數之和傳遞給argc;所以上面的argc=3
(2) 可執行文件名稱(包括路徑名稱)作為一個字元串,首地址被賦給argv[0],參數1也作為一個字元串,首地址被賦給argv[1],... ...依次類推。
⑤ java中從控制台讓用戶輸入參數的語句是什麼
java中從控制台讓用戶輸入參數的語句的方式如下:
1、使用標准輸入串System.in
//System.in.read()一次只讀入一個位元組數據,而我們通常要取得一個字元串或一組數字
//System.in.read()返回一個整數
//必須初始化
//int read = 0;
char read = '0';
System.out.println("輸入數據:");
try {
//read = System.in.read();
read = (char) System.in.read();
}catch(Exception e){
e.printStackTrace();
}
System.out.println("輸入數據:"+read);
2、使用Scanner取得一個字元串或一組數字
System.out.print("輸入");
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
System.out.println("輸入數據:"+read);
/*在新增一個Scanner對象時需要一個System.in對象,因為實際上還是System.in在取得用戶輸入。Scanner的next()方法用以取得用戶輸入的字元串;nextInt()將取得的輸入字元串轉換為整數類型;同樣,nextFloat()轉換成浮點型;nextBoolean()轉換成布爾型。*/
⑥ java如何從命令行輸入和輸出數據
import java.util.*;
import java.io.*;
import javax.swing.JOptionPane;
public class SysIn
{
public static void main(String [] args)
{
【java.util包中的Scanner類】
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一串字元:");
String firStr = sc.next();
System.out.println("你輸入的是" +firStr);
注意事項:next()讀取一個字元串,該字元串在一個空白符之前結束
(6)java命令行參數的輸入擴展閱讀
其他java從命令行輸入和輸出數據
1、【java.io包中的BufferedReader類】
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("請輸入第二串字元:");
String secStr=null;
try
{
secStr=bf.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("你輸入的是" + secStr);
注意事項:nextByte()讀取一個byte類型整數--其他類型整數類推
2、【調用 javax.swing.JOptionPane 類】
String jop = JOptionPane.showInputDialog
(null,"Please Input:","InputDialog",JOptionPane,QUESTION_MESSAGE);
System.out.println("你輸入的第三串字元:「 + jop);
}
}
注意事項:nextLine()讀取一行文本
⑦ java在命令行中實現輸入
import java.io.*;
public class test{
public static void main(String args[]){
byte buffer=new byte[512];
System.in.read(buffer);
String str=new String(buffer);
System.out.println("請你輸入:");
System.out.println("what you are input is"+str);
}
}
⑧ java 命令行傳入參數問題
import java.util.Scanner;
public class MainParameters {
public static void main(String[] args) {
System.out.println("請輸入一串字元串:");
Scanner s=new Scanner(System.in);
String str=s.next();
System.out.println("===============================\n將輸入的字元串五個一行的輸出為:");
for(int i=1;i<=str.length();i++){
System.out.print(str.substring(i-1,i));
if(i%5==0){
System.out.println();
}
}
}
}
我不太明白你的意思。你寫的程序有問題哈!
我重新寫了一個。你自己看看!
不會的qq問我哈!330380204
⑨ java 中怎樣輸入參數
你說的是命令行參數
public static void main(String[] args);
通過命令行來向java應用程序傳遞參數。
main方法接收一個一個字元串數組參數;從控制台傳進來的參數都被當作String類型的來處理,如果需要向應用傳遞多個參數,則用空格隔開,如果參數本身用雙引號引起來
執行時的格式: java 類名 參數1 參數2……
例子:
public class Abc{
public static void main(String[] args){
if(args.length!=2){
System.out.println("請按下列方式執行:"+"java Abc 參數1 參數2");
System.exit(0);
}
String a = args[0];
String b = args[1];
System.out.println("第一個參數是:"+a);
System.out.println("第二個參數是:"+b);
}
}
編譯:javac Abc.java
執行:java Abc 參數1 參數2
注意:通過main()方法從控制台接收的參數都是String類型的,如果需要其他
類型參數,需要將接收的String類型參數,顯式的轉換
⑩ Java命令行參數輸入問題
String s = args[1];
char c =Character.valueOf(args[2]).charValue();
字元串轉換成int float double boolean long char 基本也一樣
double d = Double.parseDouble(args[3]);
字串轉成 Integer,Double, Float, Long 的方法大同小異.
以下為貼的別人的總結:
數據類型基本類型有以下四種:
int長度數據類型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、
float長度數據類型有:單精度(32bits float)、雙精度(64bits double)
boolean類型變數的取值有:ture、false
char數據類型有:unicode字元,16位
對應的類類型:Integer、Float、Boolean、Character、Double、Short、Byte、Long轉換原則從低精度向高精度轉換
byte 、short、int、long、float、double、char
註:兩個char型運算時,自動轉換為int型;當char與別的類型運算時,也會先自動轉換為int型的,再做其它類型的自動轉換基本類型向類類型轉換正向轉換:通過類包裝器來new出一個新的類類型的變數
Integer a= new Integer(2);
反向轉換:通過類包裝器來轉換
int b=a.intValue();類類型向字元串轉換正向轉換:因為每個類都是object類的子類,而所有的object類都有一個toString()函數,所以通過toString()函數來轉換即可
反向轉換:通過類包裝器new出一個新的類類型的變數
eg1: int i=Integer.valueOf(「123」).intValue()
說明:上例是將一個字元串轉化成一個Integer對象,然後再調用這個對象的intValue()方法返回其對應的int數值。
eg2: float f=Float.valueOf(「123」).floatValue()
說明:上例是將一個字元串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。
eg3: boolean b=Boolean.valueOf(「123」).booleanValue()
說明:上例是將一個字元串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。
eg4:double d=Double.valueOf(「123」).doubleValue()
說明:上例是將一個字元串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。
eg5: long l=Long.valueOf(「123」).longValue()
說明:上例是將一個字元串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。
eg6: char=Character.valueOf(「123」).charValue()
說明:上例是將一個字元串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。基本類型向字元串的轉換
正向轉換:
如:int a=12;
String b;b=a+」」;反向轉換:
通過類包裝器
eg1:int i=Integer.parseInt(「123」)
說明:此方法只能適用於字元串轉化成整型變數
eg2: float f=Float.valueOf(「123」).floatValue()
說明:上例是將一個字元串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。
eg3: boolean b=Boolean.valueOf(「123」).booleanValue()
說明:上例是將一個字元串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。
eg4:double d=Double.valueOf(「123」).doubleValue()
說明:上例是將一個字元串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。
eg5: long l=Long.valueOf(「123」).longValue()
說明:上例是將一個字元串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。
eg6: char=Character.valueOf(「123」).charValue()說明:上例是將一個字元串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。