Java如何向主函数main中传入参数

目录
  • 向主函数main中传入参数
    • String[ ] args的含义
    • 第一步
    • 第二步
    • 第三步
  • Java main方法传参问题
    • 一、使用IDE集成开发环境运行Java main方法(Idea展示)
    • 二、使用命令java -jar ***.jar方式运行Java程序
    • 三、使用mvn命令运行Java程序并传参
    • 四、直接执行.class文件(了解一下,很少用)

向主函数main中传入参数

String[ ] args的含义

String[ ] args 是一个数组类型的参数,向主函数中传入参数,相当于给args这个数组传入数组元素

第一步

选中类名然后点击run as>>>>run configurations 出现下面的画面:

第二步

选中类名,点击Arguments 出现下面的画面:

然后输入数据 5 2 5,这相当于给String 类型的args数组,传入第一个元素为5,第二个元素为2,第三个元素为5;

第三步

点击Run>>>>> 出现如下结果

描述:args[0]=5,args[1]=2,args[2]=5;

public static void main(String[] args) {
	int a, b, c;
	a = Integer.parseInt(args[0]);//需要向主函数中传入参数
	b = Integer.parseInt(args[1]); //run configurations;
	c = Integer.parseInt(args[2]);
	int i = sum(a, b, c);
	System.out.println(a + "+" + b + "*" + c + "=" + i);
}
public static int sum(int a, int b, int c) {
	int sum = 0;
	sum = a + mul(b, c);
	return sum;
}
public static int mul(int b, int c) {
	int mul = b * c;
	return mul;
}

Java main方法传参问题

Java 的main方法是Java程序员最熟悉不过的一个方法了,因为我们大多数时候,启动程序都是需要使用到该方法的,且main方法的参数列表是String[] args,一个字符串数组,那么我们如何在启动的时候传入我们需要的参数呢,下面介绍三种方法。

程序示例代码:

public class GreenLeaf {
    public static final String TYPE = "WhiteFlower";
    public static void main(String[] args) {
        for (String a : args){
            System.out.println(a);
        }
        System.out.println(TYPE);
    }
}

上面的简单示例代码将打印传入的参数及一个字符串。

一、使用IDE集成开发环境运行Java main方法(Idea展示)

1.首先,点击菜单Run->Edit Configurations:

2.然后,在主类的Configuration -> Program arguments中输入你的参数,多个参数以空格分隔:

点击保存即可。

二、使用命令java -jar ***.jar方式运行Java程序

如何传参解决方案:

0.首先你需要正确打一个jar包:

很多人打包的时候可能会出现这个问题:“White-1.0-SNAPSHOT.jar中没有主清单属性”, 笔者是使用maven管理项目的,解决方案是在pom文件里加入以下插件:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>cn.itoak.white.GreenLeaf</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

1.然后在项目根目录下运行:mvn clean package 命令即可正确打jar包,包在如下位置:

2.进入target目录下,运行命令:

java -jar White-1.0-SNAPSHOT.jar 1 2 3

三、使用mvn命令运行Java程序并传参

0.执行命令前,请确保已经正确编译(mvn compile):

1.然后在项目根目录下执行命令:

mvn exec:java -Dexec.mainClass="cn.itoak.white.GreenLeaf" -Dexec.args="1 2 3"

1*.如果不想在命令中指定-Dexec.mainClass,则需要在pom文件中增加以下插件,并指定mainClass:

<build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <configuration>
                    <mainClass>cn.itoak.white.GreenLeaf</mainClass>
                    <includePluginDependencies>false</includePluginDependencies>
                </configuration>
            </plugin>
        </plugins>
    </build>

加入了上面的插件,则只需要执行如下命令即可:

mvn exec:java -Dexec.args="1 2 3"

四、直接执行.class文件(了解一下,很少用)

0.先编译生成.class文件:

javac GreenLeaf.java

1.执行:

java GreenLeaf 1 2 3

最终执行结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 在IDEA中 实现给main方法附带参数的操作

    一. 测试代码: 二.添加参数 1.在终端工具中 ①先编译: javac Test.java ②再运行: java Test args1 args2 args3 注:参数之前用空格隔开 如下图所示: 2.在idea中添加参数 ①点击Run下的Edit Configurations ②配置Configuration页中的Program arguments选项,就可以在idea中传入参数,参数之间用空格隔开. 如下图所示: 补充:IDEA中运行JavaSE程序向main函数传递参数 在实现JAVA核

  • 解决java main函数中的args数组传值问题

    这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值. 而且这个数组的长度是动态的,根据传值的个数确定数组的长度. 1.从命令提示符中传值 我在桌面新建了一个文本文档重命名为TestMain.java,代码如下 public class TestMain { public static void main(String[] args) { System.out.println("hello "+args[0]); Sys

  • Java中的main函数的详细介绍

    Java中的main函数的详细介绍 JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了.我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享. 主函数的一般写法如下: public static void main(String[] args){-} 下面分别解释这些关键字的作用: (1)p

  • java 中函数的参数传递详细介绍

    java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象.   2.当将基本类型或基本类型的包装集作为参数传递时,传递的是值.也就是说函数内对参数所做的修改不会影响原来的变量.   3.数组(数组引用))作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的数组.   4.String类型(引用)作为参数传递时传递的是引用,只是对String做出任何修改时有一个新的String

  • Java如何向主函数main中传入参数

    目录 向主函数main中传入参数 String[ ] args的含义 第一步 第二步 第三步 Java main方法传参问题 一.使用IDE集成开发环境运行Java main方法(Idea展示) 二.使用命令java -jar ***.jar方式运行Java程序 三.使用mvn命令运行Java程序并传参 四.直接执行.class文件(了解一下,很少用) 向主函数main中传入参数 String[ ] args的含义 String[ ] args 是一个数组类型的参数,向主函数中传入参数,相当于给

  • 详谈C与C++的函数声明中省略参数的不同意义

    一直都以为C/C++中形如 int func(); 这样的函数声明其意义就是一个参数 void(没有参数)的函数.然而今天在看C++的时候突然看到这么一句: 对于带空参数表的函数,C和C++有很大的不同.在C语言中,声明 int func2(); 表示"一个可带任意参数(任意数目,任意类型)的函数".这就妨碍了类型检查.而在C++语言中它就意味着"不带参数的函数". 这一点老师并没有讲到,学校教科书里也没有提到,带着好奇心,我特意试了一下 test.c #inclu

  • MyBatis中传入参数parameterType类型详解

    前言 Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型.本文主要给大家介绍了关于MyBatis传入参数parameterType类型的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1. MyBatis的传入参数parameterType类型分两种 1. 1. 基本数据类型:int,string,long,Date; 1. 2. 复杂数据类

  • C++语法中的函数重载和默认参数

    C语言中没有函数重载 C++语言中有函数重载 函数名相同,参数个数不同.参数类型不同.参数顺序不同 例如下面就是函数重载 void sum(int a, int b){ cout << a+b << endl; } void sum(int a, double b){ cout << a+b << endl; } 返回值类型与函数重载无关 返回值类型与函数重载无关,下面代码不构成重载,编译会报错 //返回值类型与函数重载无关 int func(){ retu

  • Spring Boot中@RequestParam参数的5种情况说明

    目录 Spring Boot中@RequestParam参数的5种情况 实例如下: Spring Boot注解:@RequestParam详解 1.value:参数名字,即入参的请求参数名字 ​2.required:该参数是否为必传项. ​3.defaultValue:参数的默认值 Spring Boot中@RequestParam参数的5种情况 实例如下: // 可带参数可不带参数,方法都能执行 @RequestMapping("/list") public String test1

  • .NET中函数Main的使用技巧

    引言 最近在使用pandoc这个文档转换软件,能够对各种文档进行完美的转换,比如从markdown文件转为doc,ppt,tex,odt等等各种,感兴趣的可以从Pandoc下载,对于pandoc的的文档转换,都是使用cmd中的命令来进行操作的.现在我需要把d盘的1123.md文件转换为docx文档,我只需要在cmd中输入下面的命令即可实现. 当然在安装pandoc的时候就已经把pandoc添加到环境变量中了,现在我们来分析一下这个命令pandoc 1123.md -o 1123.doc,将这个命

  • Java通过在主循环中判断Boolean来停止线程的方法示例

    本文实例讲述了Java通过在主循环中判断Boolean来停止线程的方法.分享给大家供大家参考,具体如下: package Threads; /** * Created by Frank */ public class StopBoolean extends Thread { // 确保变化对其它线程可见(主要是主线程要可见) protected volatile boolean done = false; public void run() { while (!done) { System.ou

  • Java中使用Preconditions来检查传入参数介绍

    Preconditions是Guava中的一个类库,用于检查传入参数,一个常见用法如下: boolean findElement(List<String> elements, String desiredElement) { checkNotNull(elements); // ... } 用法简单明了,就是检查参数elements是不是null,如果是null则扔出NullPointerException.当然Preconditions类里还有其它方法,可能满足几乎所有的传入参数的检查.Pr

  • Python如何在main中调用函数内的函数方式

    一般在Python中在函数中定义的函数是不能直接调用的,但是如果要用的话怎么办呢? 一般情况下: def a():#第一层函数 def b():#第二层函数 print('打开文件B') b()#第二层中的函数直接调用 结果显示: Traceback (most recent call last): File "C:/Users/rog/Desktop/wenzhang.py", line 4, in <module> b() NameError: name 'b' is

随机推荐