不要在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才能接收到從定向文件里的參數。
建議在批文件中可以多設一些參數,即使輸入重定向文件內提供的參數值數量不足也沒有關系,操作系統不會傳遞沒無值參數。
2. java命令行參數是什麼意思
這個名詞我們可以分開來看:
「命令行"就是:DOC命令行"了,也就是那個黑色的框框。
"參數就"是程序裡面所需要的"參數"了。
合起來"命令行參數」就是「在DOC下輸入的程序所需的參數」。
3. JAVA這種命令行參數是什麼意思
你好,很高興回答你的問題。
這些參數是傳遞給main方法的那個數組參數的。
如果有幫助到你,請點擊採納。
4. 請問在JAVA中,用命令行傳遞參數是什麼意思
在你配好JDK環境變數的前提下
在命令提示符中(cmd.exe)輸入,java ClassName parameter
這就是在編譯時象ClassName文件傳遞參數的方式,parameter為參數實體,可以用空格來傳遞多個參數,該參數會傳遞到public static void main(String[] args)中的args數組中
5. JAVA命令行參數傳入問題
你運行時要輸入參數的,你那樣直接執行,沒傳參數,當然有問題了。
你直接用CMD下面去運行那個程序,要把參數加上。
java ti 123.4 567.8
public class ArgTest {
public static void main(String[] args) {
float w=Float.parseFloat(args[0]);
float h=Float.parseFloat(args[1]);
System.out.println(w+" "+h);
}
}
我運行java ArgTest 102.3 113.5
輸出102.3 113.5
沒有任何錯誤,不知道你是怎麼回事。
這樣是可以賦值的
6. java main方法中的命令行參數
當你使用命令行的形式運行.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函數,所以當然出錯了。
7. 求java命令行參數詳解
作用:
當你使用命令行的形式運行.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函數,所以當然出錯了。
另外,虛機團上產品團購,超級便宜
8. 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
9. 關於java命令行參數的問題
看起來好像是你對 命令行參數 的理解有錯誤。
命令行 Java Tail filename [10]
的意思是:java執行名叫Tail的.class文件,並傳入參數為filename和[10]
所以你在主函數main()方法里,if條件,只有判斷args[0]和args[1]。
==========================
你如果還不知道的話,你可以調試一下,列印出傳入的所有參數。
在main()方法的第一行寫:
if(args != null){
for(int i=0;i<args.length;i++){
system.out.printIn(args[i]);
}
}
10. 請問Java中如何給main函數傳遞參數
這要分兩種情況。
1、用命令行傳參:
Java程序可以用java命令來運行,如程序Mai,。可以通過 java Main來運行Main程序,如果要給Main傳參,可用如下形式
java Main 參數1 參數2
參數個數並沒有限制。
2、集成環境中傳參:
在集成環境中傳參有點不同,它不像命令行一樣,可以直接在命令行在書寫參數。以IntelliJ IDEA為例。需要在」運行(run)」菜單的」編輯配置(Edit Configurations…)」中對「程序參數(Program arguments)」進行設置。其它集成環境也需要進行這樣的配置才能給程序傳遞參數。
如果你對傳參還不是很理解,可以上秒秒學了解相關知識。