Java 命令行传参详解
说白了就是向Java的 main 方法传递参数,那怎么传呢,前面已经习惯了IDEA使用这集成工具,首先想到的是下面的Terminal
标签,因为这是~Intellij IDEA
~的终端模拟器,可以理解为Windows 的CMD。
示例:
package com.zctou.method;
public class Demo04 {
public static void main(String[] args) {
//命令行传参
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]"+ args[i]);
}
}
}
一、IDEA运行程序( Run)时给main 方法传递参数的方法:
1、先新建Demo04,敲入测试代码并编译
2、菜单栏 -> Run -> Edit Configurations,弹出对话框
3、 在Build and run 中找到参数位置,输入要运传入main的参数即可。
4、 输出结果:
args[0]hello
args[1]zctou.com
args[2]here!
二、利用IDEA Terminal模拟命令行给Main传递参数:
- 找到项目class文件所在根目录,这里是(
D:\MyCode\JavaSE\out\production\基础语法
) - 进入
Terminal
,可以看到,默认所在目录为项目的根目录(这里是:D:\MyCode\JavaSE\基础语法
) 进入class文件目录,利用命令行执行已经生成的
Demo04.class
D:\MyCode\JavaSE\基础语法>cd D:\MyCode\JavaSE\out\production\基础语法 D:\MyCode\JavaSE\out\production\基础语法>java com.zctou.method.Demo04 hello zctou.com args[0]hello args[1]zctou.com args[2]here!
注意:因为Java文件内引入了包
com.zctou.method
,所以不能在Demo04所在子文件夹执行文件,要在包前的文件夹下执行。如:这里Demo04.class文件的完成路径是:
D:\MyCode\JavaSE\out\production\基础语法\com\zctou\method
,那么执行
java 运行命令
的文件夹就是D:\MyCode\JavaSE\out\production\基础语法
,也就是上面代码一开始看到的cd D:\MyCode\JavaSE\out\production\基础语法
由来。
三、在IDEA Terminal下使用命令行传递参数:
除了利用IDEA build的class文件,也可以在Terminal下自己使用javac命令
编译文件:
- 在 IntelliJ IDEA的Terminal 利用
javac
编译时内出现报错:编码GBK的不可映射字符怎么解决?如图
- 菜单栏,找到 File -> Settings ->搜索 File Encodings -> 全部选UTF-8 , Default encoding for properties files 也选择 UTF-8, 保存
在项目文件中右键,点击Build Module(基础语法)重新加载项目。
如果还不能解决问题,就在
javac 上加上 -encoding UTF-8
。如:
D:\MyCode\JavaSE\基础语法\src\com\zctou\method>javac Demo04.java Demo04.java:5: 错误: 编码GBK的不可映射字符 //鍛戒护琛屼紶鍙? ^ 1 个错误 D:\MyCode\JavaSE\基础语法\src\com\zctou\method>javac Demo04.java -encoding UTF-8 D:\MyCode\JavaSE\基础语法\src\com\zctou\method>
编译完
class文件
后,同样需要到java文件中引用的包上一级目录com.zctou.method
的上一级目录为src。直接 cd
D:\MyCode\JavaSE\基础语法\src
,跟第二种方法一样,直接利用命令运行即可。D:\MyCode\JavaSE\基础语法>cd src D:\MyCode\JavaSE\基础语法\src>java com.zctou.method.Demo04 D:\MyCode\JavaSE\基础语法\src>java com.zctou.method.Demo04 hello zctou.com here! args[0]hello args[1]zctou.com args[2]here!
四、 在CMD中运行命令行测试Java 给main方法传参:
D:\MyCode\JavaSE\基础语法\src\com\zctou\method>javac Demo04.java
Demo04.java:5: 错误: 编码GBK的不可映射字符
//鍛戒护琛屼紶鍙?
^
1 个错误
D:\MyCode\JavaSE\基础语法\src\com\zctou\method>javac Demo04.java -encoding utf-8
D:\MyCode\JavaSE\基础语法\src\com\zctou\method>cd D:\MyCode\JavaSE\基础语法\src
D:\MyCode\JavaSE\基础语法\src>java Demo04 hello zctou.com here!
错误: 找不到或无法加载主类 Demo04
D:\MyCode\JavaSE\基础语法\src>java com.zctou.method.Demo04 hello zctou.com here!
args[0]hello
args[1]zctou.com
args[2]here!
D:\MyCode\JavaSE\基础语法\src>
可以看到 cmd的操作跟 idea中的terminal 是一样的。