导航:首页 > 程序命令 > 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读取命令行参数相关的资料

热点内容
python连接本地数据库报错 浏览:190
手机模拟加密禁卡操作 浏览:100
电荷数怎么算法 浏览:587
cad如何打开命令行 浏览:148
php图片限制大小 浏览:161
程序员一夜未归 浏览:590
苹果xsmaxapp怎么不显示更新 浏览:598
苹果app怎么清除角标 浏览:479
解压屁屁玩具脏了怎么办 浏览:670
算法识别自动折叠 浏览:9
dos命令遍历文件 浏览:455
翻译整个pdf 浏览:198
怎么给解压软件授权 浏览:621
怎么换手机桌面壁纸安卓 浏览:957
pdf转换阅读器 浏览:344
特斯拉怎么app预约充电 浏览:498
安卓怎么录像更清晰 浏览:919
怎么服务器输入命令没有显示出来 浏览:799
玩吃鸡怎么取消资源编译 浏览:615
安卓如何不用密码改密码 浏览:399