導航:首頁 > 程序命令 > java讀取命令行參數

java讀取命令行參數

發布時間:2022-07-31 14:37:38

1. java 中 如何通過命令行來傳遞參數

可以在命令行運行java程序時加上程序的參數。

例子如下:

public class HelloWorld{


public static void main(String args[]){


System.out.println("temp=" + args[0]);


}


}

源代碼截圖:

解釋一下: String[ ] args

該參數,是一個字元串數組,用來接收從命令行輸入的參數

1. 參數之間用空格隔開

2. java解釋器會自動處理,把用空格隔開的每一個參數通過args數組傳遞給買呢()方法。

3. 參數的下標從0開始,args[0]表示第一個參數,例如java HelloWorld 10 20 30

4.可以有多個空格,多個空格會被忽略。

(1)java讀取命令行參數擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。

2. 編寫java程序,使用命令行參數讀取兩個整數N和K,使用牛頓迭代法求N的K階方根

packagetest;

importjava.util.Scanner;

/**
*@author:鄭旭東
*@company:通廣電子
*@time:2014年10月14日下午3:03:35
*/
publicclassNewton{
staticintn;
staticinty;
staticdoubleres;
publicstaticdoublefunc(doublex){
doublek=1;
inti;
for(i=0;i<n;i++){
k*=x;
}
returnk-y;
}

publicstaticdoublefunc1(doublex){
doublek=1;
inti;
for(i=0;i<n-1;i++){
k*=x;
}
returnn*k;
}

publicstaticintNewtonn(doublex,doubleprecision,intmaxcyc){
doublex1,x0;
intk;
x0=x;
for(k=0;k<maxcyc;k++){
if(func1(x0)==0.0){
System.out.println("迭代過程中導數為0!");
return0;
}
x1=x0-func(x0)/func1(x0);
if(Math.abs(x1-x0)<precision||Math.abs(func(x1))<precision){
res=x1;
return1;
}
else
x0=x1;
}
System.out.println("迭代次數達到預期值!");
return0;
}

@SuppressWarnings({"resource"})
publicstaticvoidmain(Stringargs[]){
doublex,precision;
intmaxcyc;
System.out.println("請輸入被開方數:");
Scannerscanner=newScanner(System.in);
y=scanner.nextInt();
System.out.println("請輸入開方數:");
n=scanner.nextInt();
System.out.println("請輸入初始迭代值:");
x=scanner.nextInt();
System.out.println("請輸入最大迭代次數:");
maxcyc=scanner.nextInt();
System.out.println("請輸入精度值(如0.00001):");
precision=scanner.nextDouble();
if(Newtonn(x,precision,maxcyc)==1){
System.out.println("結果為:"+res);
}
else
System.out.println("迭代失敗!");
}

}

手打望採納...

3. 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函數,所以當然出錯了。

4. 如何識別java命令行編譯參數

javac

用法:javac <選項> <源文件>
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath <路徑> 指定查找用戶類文件的位置
-cp <路徑> 指定查找用戶類文件的位置
-sourcepath <路徑> 指定查找輸入源文件的位置
-bootclasspath <路徑> 覆蓋引導類文件的位置
-extdirs <目錄> 覆蓋安裝的擴展目錄的位置
-endorseddirs <目錄> 覆蓋簽名的標准路徑的位置
-d <目錄> 指定存放生成的類文件的位置
使用-d參數,如類中定義了包,則編譯時會自動生成包, 如:javac -d . helloworld.java
表示在當前目錄下編譯Helloworld 類。.表示當前目錄,如helloword中定義有包,則在當前目錄下生成包:

-encoding <編碼> 指定源文件使用的字元編碼
-source <版本> 提供與指定版本的源兼容性
-target <版本> 生成特定 VM 版本的類文件
-version 版本信息
-help 輸出標准選項的提要
-X 輸出非標准選項的提要
-J<標志> 直接將 <標志> 傳遞給運行時系統

java

用法: java [-選項] 類 [參數...]
(執行一個類)
或者 java [-選項] -jar jar文件 [參數...]
(執行一個jar文件)
其中,可能的選項包括:
-client 選擇 "client" VM(ginger547:應該是指Virtual Machine)
-server 選擇 "server" VM
-hotspot 與 "client" VM同義 [不贊成]
默認情況的VM是client.
-cp <一個文件夾和zip/jar文件組成的類搜索路徑>
-classpath <一個文件夾和zip/jar文件組成的類搜索路徑>
一個由文件夾,JAR壓縮文件,或者ZIP壓縮文件組成的用來搜索類的列表
-D<名字>=<值>
設置一個系統屬性
-verbose[:class|gc|jni]
使詳細輸出變的可用
-version 列印產品版本然後退出
-version:<值>
只運行指定版本
-showversion 列印產品版本後繼續
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的時候,包含/排除用戶私人的JRE
-? -help 列印幫助信息
-X 列印非標准選項幫助
-ea[:<包名>...|:<類名>]
-enableassertions[:<包名>...|:<類名>]
使斷言可用
-da[:<包名>...|:<類名>]
-disableassertions[:<包名>...|:<類名>]
是斷言不可用
-esa | -enablesystemassertions
使系統級斷言可用
-dsa | -disablesystemassertions
使系統級斷言不可用
-agentlib:<庫名>[=<選項>]
載入本地代理庫<庫名>,例如. -agentlib:hprof
同時可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路徑名>[=<選項>]
通過全路徑名來載入本地代理庫
-javaagent:<jar路徑>[=<選項>]
載入Java編程語言代理,可查看 java.lang.instrument

5. JAVA如何從命令行讀入一個String

比如你現在有一個可以運行的class文件叫做A.class。那麼在命令行中可以這樣執行這個程序:
java A arg
其中arg是A需要的參數。那麼A是怎麼得到這個arg的呢。基本上是這樣的:
public static void main(String[] args)
{
if(args.length > 0)
{
String str = arg[0];
}
}
這是在A.java中的main函數,這里只是得到了第一個參數的做法,如果想得到更多的參數,只要做一個簡單的循環遍例這個數組args就可以了。

6. 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才能接收到從定向文件里的參數。
建議在批文件中可以多設一些參數,即使輸入重定向文件內提供的參數值數量不足也沒有關系,操作系統不會傳遞沒無值參數。

7. java程序如何獲取命令行參數

args[],中括弧里0是第一個命令行參數,1是第二個,以此類推。

8. 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()讀取一個字元串,該字元串在一個空白符之前結束

(8)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()讀取一行文本

9. JAVA在命令行接受參數進行運算的問題

import java.util.*;

public class Test{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("請輸入第一個數:");
int num1=in.nextInt();
System.out.println("請輸入第二個數:");
int num2=in.nextInt();
int sum=num1+num2;
System.out.println(("輸入的值的和為:"+sum);
}
}

閱讀全文

與java讀取命令行參數相關的資料

熱點內容
大連php培訓學校 瀏覽:983
怎麼指定定向流量app的免流 瀏覽:900
華為雲伺服器有啥軟體 瀏覽:654
禮記正義pdf 瀏覽:988
CorePDF 瀏覽:733
python多文件調用 瀏覽:329
linux如何用python 瀏覽:188
超易學的python 瀏覽:159
控制面板命令行 瀏覽:51
為什麼空氣難壓縮是因為斥力嗎 瀏覽:643
郭天祥單片機實驗板 瀏覽:601
伺服器有什麼危害 瀏覽:258
飢荒怎麼開新的獨立伺服器 瀏覽:753
文件夾變成了 瀏覽:560
linuxpython綠色版 瀏覽:431
怎麼下載小愛同學音箱app 瀏覽:554
python佔位符作用 瀏覽:76
javajdbcpdf 瀏覽:543
php網頁模板下載 瀏覽:192
python試講課pygame 瀏覽:409