关于Java程序入口args参数

关于Java程序入口args参数

我们都知道一个java工程会有一个主程序入口,即我们常见到的如下代码

public static void main(String[] args) {
        // 中间程序
}

但是很多人可能都不知道主程序入口中的String[] args后面的args会有怎么样一个使用场景呢?
其实在Java的main方法中,args是一个String类型的数组参数,用于接收命令行传入的参数。当我们在命令行中运行Java程序时,可以在命令行中通过空格分隔的形式传入一些参数,这些参数会作为字符串元素存储在args数组中,那么我们接下来用实际例子来说明这种情况。

实例说明

第一步:我们假设设置这么样一个工程目录,工程路径:D:\1.JAVA\JmeterDemo
在这里插入图片描述
第二步:在HelloWorld.java中编写如下代码

package com.test.demo;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");

        //获取输入的参数,并且进行打印
        System.out.println("input param:" + args.length);
        for (int i = 0; i < args.length; i++) {
            System.out.println("param " + (i+1) + ": " + args[i]);
        }
    }
}

第三步:对HelloWorld.java进行编译,使用终端进入对应的文件:HelloWorld.java路径

D:\1.JAVA\JmeterDemo\src\com\test\demo>javac HelloWorld.java

第四步:编译以后,在同样的路径下执行如下命令

D:\1.JAVA\JmeterDemo\src>java com.test.demo.HelloWorld arg1 arg2 arg3

第五步:我们可以得到对应的结果如下:

Hello, World!
input param:3
param 1: arg1
param 2: arg2
param 3: arg3

碰到的坑

1.没有进行编译,直接执行java命令,此时我们会发现如下报错:

D:\1.JAVA\JmeterDemo\src>java com.test.demo.HelloWorld arg1 arg2 arg3
错误: 找不到或无法加载主类 com.test.demo.HelloWorld

2.带有package的路径,但是没有执行对应添加执行对应的package路径,上述代码我们能够看到package的路径是package com.test.demo

package com.test.demo;

但是我们在执行的时候是这样的命令

D:\1.JAVA\JmeterDemo\src>java HelloWorld arg1 arg2 arg3

那么你会得到如下报错:

D:\1.JAVA\JmeterDemo\src>java HelloWorld arg1 arg2 arg3
错误: 找不到或无法加载主类 HelloWorld

错误: 找不到或无法加载主类 HelloWorld
此时有人会说,你这个路径不对,HelloWorld的路径是D:\1.JAVA\JmeterDemo\src\com\test\demo这个,但是此时如果你在这个路径下执行命令的话,同样会报这个错误,所以我们需要将package中的路径带上,如上述第四步执行的命令。
3. 环境变量设置问题(小编未碰到,待各位小伙伴去试验),主要注意以下几点:
①JAVA_HOME路径是否正确,应为安装的文件夹位置
②CLASSPATH路径是否正确,正确的路径如下:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar
【注意】上述的 .; 不可省略。
第三个问题引用的内容来自这里

https://blog.csdn.net/edelweiss0o0/article/details/121712814

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/656972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【chagpt】广泛使用API之前:考虑成本和数据隐私

文章目录 一. 定价和标记限制二. 安全和隐私 在广泛使用API之前&#xff0c;应该考虑两个重要因素&#xff1a;成本和数据隐私。 一. 定价和标记限制 OpenAI在Pricing页面上列出了模型的定价。请注意&#xff0c;OpenAI不一定及时更新该页面上的定价信息&#xff0c;因此实际…

Rust 赋能前端 -- 写一个 File 转 Img 的功能

所有耀眼的成绩,都需要苦熬,熬得过,出众;熬不过,出局 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 Rustwasm-bindgen/js-sys/web-sysWeb WorkerWebAssemblyWebpack/Vite配置WebAssemblyOffscreenCanvas脚手架生成项…

[AI Google] I/O 2024大会上我们宣布的100件事情

I/O 2024 发生了很多事情&#xff01;无论你对最新的 Gemini 应用更新感兴趣&#xff0c;对开发者即将推出的内容感到特别兴奋&#xff0c;还是迫不及待想尝试最新的生成式 AI 工具&#xff0c;这里几乎为每个人都提供了一些内容。不信&#xff1f;以下是我们在过去两天宣布的 …

如何使用 Monte Carlo 模拟作为项目管理工具

Monte Carlo 模拟是一种预测不确定事件可能结果的数学技术。我们之前曾撰写过有关其为研发专业人员带来的益处的文章&#xff0c;并主持过有关 Monte Carlo 模拟功能的网络讲座&#xff0c;以帮助产品满足预期规格、预测过程能力并确定最佳过程设置。然而&#xff0c;Monte …

隐藏服务器源IP怎么操作,看这一篇学会!

在当今的网络环境中&#xff0c;服务器作为信息和服务的中枢&#xff0c;常驻于公网之上&#xff0c;面临着各式各样的安全威胁&#xff0c;其中&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击尤为猖獗&#xff0c;它通过协调大量计算机同时向目标服务器发送请求…

打印机手动双面打印技巧

一、WORD和PDF &#xff08;1&#xff09;首先选择要打印的页面范围&#xff0c;然后选择仅奇数页打印 &#xff08;2&#xff09;将打印完的纸张翻过来&#xff0c;白纸朝上&#xff0c;纸张的头部先放入打印机 &#xff08;3&#xff09;选择要打印的页面范围&#xff0c;然…

【算法】递归、搜索与回溯——汉诺塔

题解&#xff1a;汉诺塔(递归、搜索与回溯算法) 目录 1.题目2.题目背景(拓展了解)3.题解4.参考代码5.细节6.总结 1.题目 题目链接&#xff1a;LINK 2.题目背景(拓展了解) 汉诺塔问题是一个通过隐式使用递归栈来进行实现的一个经典问题&#xff0c;该问题最早的发明人是法国…

从零教你实现django的前后端分离模式文件上传下载功能实现(2024最新)

文章目录 项目初始化配置具体文件上传下载代码的实现数据库模型类建立 运行测试 项目初始化配置 1.使用pycharm编辑器新建一个django项目 2.Terminal终端下载需要的依赖包 # 和数据库建立连接的依赖包 pip install mysqlclient # 解决跨域问题的依赖包 pip install django-co…

使用阿里云OSS实现视频上传功能

目录 前言 视频上传 前言 阿里云对象存储服务&#xff08;OSS&#xff09;作为一种高可用、高扩展性的云端存储服务&#xff0c;为开发者提供了便捷、安全的对象存储解决方案。本文将介绍如何利用阿里云OSS实现视频上传功能。 视频上传 前期准备请看阿里云OSS文件上传和下载…

颜色空间的选择

1.选择Gamma颜色空间&#xff0c;Web平台或者不支持线性空间&#xff0c;或者追求高饱和度的 2.选择Linear&#xff0c;追求真实光照和物理准确

9、C#【进阶】特性

特性 文章目录 1、特性概念2、自定义特性 Attribute3、特性的使用4、限制自定义特性的使用范围5、系统自带特性1、过时特性2、调用者信息特性3、条件编译特性4、外部dll包函数特性 1、特性概念 特性是一种允许我们向程序的程序集添加元数据的语言结构 它是用于保存程序机构信息…

Springboot启动时报错Property ‘mapperLocations‘ was not specified.

这几天没整boot 晚上直接运行不了了 本想是在表现层写点代码测测接口的 localhost8080找半天 结果404 先考虑好久 是不是url输入错了 然后 就发现 结果boot都不能启动了 JUnit也测不出来 找了半天 结果是开关机导致数据库没开 手动打开服务 找到MySQL启动 IDEA连接数据…

Istio ICA考试之路---2-6

Istio ICA考试之路---2-6 1. 题目2. 解题2.1 获取模板2.3 整理yaml 3. 测试 1. 题目 Using Kubernetes context cluster-2 Create and configure Istio resources necessary for routing all traffic destined for http://example.org through the default Istio egress gat…

PLC远程调试

随着工业自动化的快速发展&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;已经成为现代工业生产线的核心控制设备。然而&#xff0c;传统的PLC调试方式往往受限于地理位置和物理连接&#xff0c;使得工程师在调试过程中面临诸多不便。在这个背景下&#xff0c;HiWoo …

河道流量监测解决方案 河道水位监测 水质在线监测-计讯物联科技

在城市河道与入海口间的通道施工项目中&#xff0c;拦水坝不仅承担着调节水流、保护生态平衡的使命&#xff0c;也是确保施工区域安全的关键屏障。当前&#xff0c;项目团队面临着严峻的挑战&#xff1a;水位的异常上升和流量的急剧变化&#xff0c;这些都可能对拦水坝的稳定性…

YOLO训练报错解决:OSError: [WinError 1455] 页面文件太小,无法完成操作

问题&#xff1a;OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。 Error loading "C:\Users\12706.conda\envs\yolov8\lib\site-packages\torch\lib\cudnn_cnn_infer64_8.dll" or one of its dependencies. 解决方法&#xff1a; 降低数据加载的线…

SpringSecurity登录和校验流程简述

认证&#xff1a; 验证当前访问系统的是不是本系统的用户&#xff0c;并且要确认具体是哪个用户 授权&#xff1a; 经过认证后判断当前用户是否有权限进行某个操作 一、入门案例实现 搭建springboot工程后&#xff0c;创建启动类和Controller&#xff0c;引入SpringSecurity依…

Spring Cache基本使用

Spring 从 3.1 版本开始定义缓存抽象来统一不同的缓存技术&#xff1b;在应用层面与后端存储之间&#xff0c;提供了一层抽象&#xff0c;这层抽象目的在于封装各种可插拔的后端存储( ehcache, redis, guava)&#xff0c;最小化因为缓存给现有业务代码带来的侵入。 一、Spring…

【代码随想录】面试常考类型之动态规划01背包

前言 更详细的在大佬的代码随想录 (programmercarl.com) 本系列仅是简洁版笔记&#xff0c;为了之后方便观看 不同的二叉搜索树 96. 不同的二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 通过举例子发现重叠子问题 代码很简单&#xff0c;主要是思路问题&#xff0…

AD使用问题

设计流程&#xff1a; 1.先创建项目——添加原理图&#xff0c;原理图库&#xff0c;PCB&#xff0c;PCB库 2.画原理图库和封装库 主要有三种方法&#xff1a; &#xff08;1&#xff09;手动画库和封装&#xff0c;常常用于嘉立创查询不到的器件 &#xff08;2&#xff0…