You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java乘法功能失效:运行始终输出错误信息排查

问题分析与解决

先看这段Java代码:

class DecisionControl1{
    public static void main (String[] args){
        int num1 = Integer.parseInt(args[0]);
        String op = args[1];
        int num2 = Integer.parseInt(args[2]);
        if(op.equals("*")){
            System.out.println(num1 * num2);
        }
        else{
            System.out.println("error");
        }
    }
}

这段代码编译没问题,但运行时始终输出error,无法执行乘法逻辑,核心问题出在命令行参数的传递方式:

当你在终端输入类似java DecisionControl1 2 * 3的命令时,操作系统(Linux/macOS的Shell、Windows的CMD/PowerShell)会把*识别为文件通配符,自动将其替换成当前目录下的所有文件名,而不是把*作为普通字符串传递给Java程序。这就导致args[1]拿到的不是预期的*,自然匹配不上op.equals("*"),只能走else分支输出错误信息。

解决办法

运行程序时给*加上引号,强制操作系统将其视为普通字符串:

  • Linux/macOS Shell环境:用单引号包裹参数,执行命令 java DecisionControl1 2 '*' 3
  • Windows CMD环境:用双引号包裹参数,执行命令 java DecisionControl1 2 "*" 3
  • Windows PowerShell环境:用单引号包裹或转义*,执行 java DecisionControl1 2 '*' 3 或 java DecisionControl1 2 * 3

这样程序就能正确获取到*作为第二个参数,正常执行乘法运算。

内容的提问来源于stack exchange,提问作者Win Min Thant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:27:36