当前位置: 首页 > 面试题库 >

Java命令行参数。使用*作为乘法的参数

拓拔野
2023-03-14
问题内容

我正在尝试从命令行运行Java计算器应用程序。参数如下:运算符operon1操作数2。我可以为+和-成功运行Java程序。
例如
Java Calc + 2 4
Java Calc-10 4

但是当我尝试运行
java * 2 5时

System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);

给出输出:
.classpath
.project
.settings

我通过反复试验发现使用单引号(’‘)解决了我的问题。所以我现在有两个问题。
1.使用单引号是正确的方法吗?(java calc’
‘2 5)
2. java命令行中*的含义是什么?(我试图在互联网上找到它,但没有找到太多帮助)

谢谢,Punit


问题答案:

它不是Java,而是cmd您正在使用的shell(如果您使用的是Windows)解释*为“当前目录中的所有文件和文件夹”。

所以当你写:

java calc * 2 5

实际上,您将为程序提供以下参数:

java calc file_1 file_2 ... file_n 2 5

file_1 ... file_n当前目录中的所有文件(和文件夹)在哪里。

如果您不希望shell解释*为所有文件,则需要(如您所注意到的)引用该参数。



 类似资料:
  • 问题内容: 说,我有一个文件指定参数 我需要传递给命令 如何使用文件的行作为命令的参数? 问题答案: 如果您的shell是bash(以及其他东西),则其的快捷方式是,因此您应编写: 在“命令替换”部分的bash手册页中记录。 或者,从stdin中读取命令,因此:

  • 问题内容: 在Java中传递-D参数时,编写命令行然后从代码访问它的正确方法是什么? 例如,我尝试编写类似这样的内容… 然后这样称呼… 但是我收到一个NullPointerException。我究竟做错了什么? 问题答案: 我怀疑问题是您将“ -D”放在了。 之后。试试这个: 从命令行帮助: 换句话说,此刻获得的方式将被视为要传递的参数之一,而不是JVM参数。 (您可能 还 应该删除引号,但是无论

  • 为了方便起见,我们支持在运行 Blade 应用的时候修改一些配置,比如我在运行时指定端口: java -jar blade-app.jar --server.port=9088 当然还支持一些其他的命令行参数,看看下面的表格: 命令行参数 描述 示例 server.address 服务地址,默认是本机 0.0.0.0 回环地址 --server.address=192.168.1.100 serv

  • 1.2. 命令行参数 大多数的程序都是处理输入,产生输出;这也正是“计算”的定义。但是, 程序如何获取要处理的输入数据呢?一些程序生成自己的数据,但通常情况下,输入来自于程序外部:文件、网络连接、其它程序的输出、敲键盘的用户、命令行参数或其它类似输入源。下面几个例子会讨论其中几个输入源,首先是命令行参数。 os包以跨平台的方式,提供了一些与操作系统交互的函数和变量。程序的命令行参数可从os包的Ar

  • '-m' 选项 显示所有编译的模块,自1.4.0以来,Tengine支持动态模块,static表示静态编译,shared表示动态编译(后面接的是动态模块的版本)。下面是例子: $ nginx -m Tengine version: Tengine/1.4.1 (nginx/1.2.3) loaded modules: ngx_core_module (static) ng

  • V2Ray V2Ray 的程序文件的命令行参数如下: v2ray [-version] [-test] [-config=config.json] [-format=json] -version 只输出当前版本然后退出,不运行 V2Ray 主程序。 -test 测试配置文件有效性,如果有问题则输出错误信息,不运行 V2Ray 主程序。 -config 配置文件路径,可选的形式如下: 本地路径,可