0

0

在Java里如何接收命令行参数_Java参数传递说明

P粉602998670

P粉602998670

发布时间:2026-01-30 14:33:08

|

130人浏览过

|

来源于php中文网

原创

main方法的String[] args参数接收Java命令行中类名之后的所有字符串(按空格/制表符分割,引号内内容不拆分),不包含java命令和类名;args数组永不为null,长度可为0。

在java里如何接收命令行参数_java参数传递说明

main方法的String[] args参数到底接收什么

Java程序启动时,JVM会把命令行中java命令之后、类名之后的所有字符串,按空格(或制表符)分割后,作为字符串数组传给main(String[] args)。注意:引号包裹的内容(如"hello world")算作一个元素,不会被空格切开;但单引号无效,Windows下反斜杠需转义。

常见误解是认为args包含java命令本身或类名——其实不包含,只从第一个非命令/类名的token开始。

  • 执行java MyApp -v --port 8080 "log dir"args["-v", "--port", "8080", "log dir"]
  • 执行java MyApp a\ b(Linux/macOS)→ args[0]"a b";Windows下a^ b才等效,直接写a\ b会被当成两个参数
  • 若参数含等号(如--name=alice),它就是一个完整字符串,不会自动拆成键值对

如何安全解析带选项的命令行参数

手写for循环遍历args容易出错:漏掉下一个参数、混淆位置与命名参数、忽略重复选项。建议用成熟库,而非自己切分或正则匹配。

Apache Commons CLIpicocli是主流选择。其中picocli更现代,支持注解、自动帮助生成、甚至子命令,且零依赖(单jar可运行)。

WPS AI
WPS AI

金山办公发布的AI办公应用,提供智能文档写作、阅读理解和问答、智能人机交互的能力。

下载

立即学习Java免费学习笔记(深入)”;

  • picocli时,定义字段加@Option注解,例如@Option(names = {"-p", "--port"}) int port = 8080;
  • 调用new CommandLine(new MyApp()).parseArgs(args)后,字段自动赋值,非法参数会抛ParameterException并打印友好提示
  • 避免用System.getProperty()试图读取命令行参数——那是读JVM系统属性(-Dkey=value),不是args

args为空或null时会发生什么

args永远不会是null——JVM保证传入一个长度可能为0的数组。所以无需判空,但要检查长度。

  • 执行java MyAppargs.length == 0,不是null
  • 错误写法:if (args == null) { ... }永远不执行,纯属冗余
  • 正确判断无参:if (args.length == 0);判断至少一个参数:if (args.length
  • 若逻辑依赖某个必填参数(如输入文件路径),应在解析后校验,而不是依赖数组长度做业务分支

在IDE里怎么模拟命令行参数调试

IDE运行配置中设置的“Program arguments”内容,会原样传给args,但要注意IDE对空格和引号的处理逻辑可能和终端不一致。

  • IntelliJ:Run → Edit Configurations → Program arguments → 填-c config.json --debug(不用加java MyApp前缀)
  • Eclipse:Run Configurations → Arguments → Program arguments → 同样只填参数部分
  • 陷阱:在IDE里写"a b",有些版本会去掉引号再传入,导致变成两个参数;稳妥做法是改用a\ b或在代码里用Arrays.toString(args)打印验证
  • 真正上线前,务必在终端中手动执行一遍,避免IDE“帮你省事”掩盖问题
实际项目里,参数解析只是起点;真正难的是参数语义校验(比如端口号是否在1–65535之间)、参数间互斥关系(--verbose--quiet不能共存)、以及错误时给出精准反馈。这些靠裸写args循环很难维护,交给picocli这类库处理更可靠。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

420

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

536

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

191

2023.06.14

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

795

2023.07.24

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

597

2023.11.02

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

167

2024.02.23

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.1万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号