java命令行参数,java命令行参数输入

本文目录一览:

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函数,所以当然出错了。

Java怎么解析命令行参数

用惯了控制台的java程序之后,最印象深刻的是其的简单与快捷,虽没有图形界面那样吸引人的眼球,但却也足以迷倒众生。那么java命令行参数有哪些呢?跟gkstk小编一起来学习吧!

控制台程序的运行少不了要通过控制台来传递参数,譬如:

Sh代码

ls -la

这是shell脚本的常用命令,其就是通过后置参数来传递相关信息。UNIX环境为C语言中提供了getopt()这样的函数可以解析后置参数,这个函数是很实用很强大的,但Java就…(我Google了一下,倒没有怎么找出来)。大概是这个功能对Java来说太不足挂齿了吧,但总得有个解决方法才行。

下面就是一个代码实例,用以说明。

这个实例运行的结果是运行在控制台,并允许可选的输入参数:

Sh代码

java TestOpt -i 89 -b -s TestString

那么就会设置几个prarameter的值

Java代码

public class TestOpt {

public static void main(String[] args) {

/*

* 这里先取默认值,因为不是所有参数都会被用户提供

*/

boolean prarameter1 = false;

int prarameter2 = 0;

String prarameter3 = “”;

/*

* 设置一个offset变量,用来定位相关信息

*/

int optSetting = 0;

for (; optSetting args.length; optSetting++) {

if (“-b”.equals(args[optSetting])) {

prarameter1 = true;

} else if (“-i”.equals(args[optSetting])) {

prarameter2 = Integer.parseInt(args[++optSetting]);

} else if (“-s”.equals(args[optSetting])) {

prarameter3 = args[++optSetting];

}

}

/*

* 这里我只是打印出来相关的设置信息,具体的行为肯定是要自己取定义打

*/

System.out.println(prarameter1);

System.out.println(prarameter2);

System.out.println(prarameter3);

}

}

这种类似的方法估计应该有很多吧,但这个应该算是比较轻量级的。当然若参数非常多(同时也得进行验证输入)

怎样用数组使用java命令行参数

哥们你看看下面解释还行吗?

java命令行的常用参数

2008-09-05 18:38

java -classpath/-cp

虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:

Bootstrap classes,Extension classes,User classes。

Bootstrap中的路径是虚拟机自带的jar或zip文件,虚拟机首先搜索这些包文件,用System.getProperty(“sun.boot.class.path”)可得到虚拟机搜索的包名。

Extension是位于jre\lib\ext目录下的jar文件,虚拟机在搜索完Bootstrap后就搜索该目录下的jar文件。用System. getProperty(“java.ext.dirs”)可得到虚拟机使用Extension搜索路径。

User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。

-classpath告知虚拟机搜索目录名、jar文档名、zip文档名之间用分号;分隔。

例如当你自己开发了公共类并包装成一个common.jar包,在使用common.jar中的类时,就需要用-classpath common.jar 告诉虚拟机从common.jar中查找该类,否则虚拟机就会抛出java.lang.NoClassDefFoundError异常,表明未找到类定义。在运行时可用System.getProperty(“java.class.path”)得到虚拟机查找类的路径。

使用-classpath后虚拟机将不再使用CLASSPATH中的类搜索路径,如果-classpath和CLASSPATH都没有设置,则虚拟机使用当前路径(java.exe所在路径)作为类搜索路径。

推荐使用-classpath来定义虚拟机要搜索的类路径,而不要使用环境变量CLASSPATH的搜索路径,以减少多个项目同时使用CLASSPATH时存在的在冲突。例如应用1要使用a1.0.jar中的类G,应用2要使用a2.0.jar中的类G,a2.0.jar是a1.0.jar的升级包,当a1.0.jar,a2.0.jar都在CLASSPATH中,虚拟机搜索到第一个包中的类G时就停止搜索,如果应用1应用2的虚拟机都从CLASSPATH中搜索,就会有一个应用得不到正确版本的类G。

java -version

显示虚拟机版本信息。

java -verbose/-verbosse:class

verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下:

[Loaded java.io.FilePermission$1 from shared objects file]

当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。

java命令行参数。

import org.apache.commons.cli.CommandLineParser;

import org.apache.commons.cli.BasicParser;

import org.apache.commons.cli.Options;

import org.apache.commons.cli.CommandLine;

public static void main(String[] args) throws Exception {

// Create a Parser

CommandLineParser parser = new BasicParser( );

Options options = new Options( );

options.addOption(“h”, “help”, false, “Print this usage information”);

options.addOption(“v”, “verbose”, false, “Print out VERBOSE information” );

options.addOption(“f”, “file”, true, “File to save program output to”);

// Parse the program arguments

CommandLine commandLine = parser.parse( options, args );

// Set the appropriate variables based on supplied options

boolean verbose = false;

String file = “”;

if( commandLine.hasOption(‘h’) ) {

System.out.println( “Help Message”)

System.exit(0);

}

if( commandLine.hasOption(‘v’) ) {

verbose = true;

}

if( commandLine.hasOption(‘f’) ) {

file = commandLine.getOptionValue(‘f’);

}

}

cli下载地址:

上面是代码片段使用方法:

java xxxx -h

java xxxx -f 119

原创文章,作者:WOZH,如若转载,请注明出处:https://www.506064.com/n/147988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
WOZHWOZH
上一篇 2024-11-02 13:13
下一篇 2024-11-02 13:13

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • 三星内存条参数用法介绍

    本文将详细解释三星内存条上面的各种参数,让你更好地了解内存条并选择适合自己的一款。 一、容量大小 容量大小是内存条最基本的参数,一般以GB为单位表示,常见的有2GB、4GB、8GB…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29

发表回复

登录后才能评论