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

在Docker中运行Java求平均值代码遇错误,请求技术协助

解决Docker中运行Java平均值计算代码的问题

看起来你的代码还没写完呢(rea...应该是reader吧?),先帮你补全代码,再一步步说怎么在Docker里正确运行它,同时排查可能遇到的错误。

第一步:补全并修正你的Java代码

首先,你的代码有几个小问题:拼写错误(avrage应该是average)、未完成的reader调用,还有最后没计算平均值、关闭Scanner。补全后的完整代码如下:

import java.util.Scanner;

class Ave {
    public static void main(String args[]) {
        int n;
        double res = 0;
        Scanner reader = new Scanner(System.in);
        
        System.out.println("Enter how many numbers to calculate the average ");
        n = reader.nextInt();
        
        int a[] = new int[n];
        System.out.println("Enter " + n + " numbers");
        
        for(int i = 0; i < n; i++) {
            a[i] = reader.nextInt(); // 补全reader调用
            res += a[i]; // 累加数值
        }
        
        res = res / n; // 计算平均值
        System.out.println("The average is: " + res);
        
        reader.close(); // 关闭Scanner
    }
}

第二步:Docker运行Java代码的正确流程

要在Docker里运行Java程序,你需要准备Dockerfile,或者用现成的Java镜像直接运行,这里分两种方法:

方法1:使用Dockerfile构建镜像

  • 把上面的代码保存为Ave.java文件。
  • 创建Dockerfile,内容如下:
# 使用官方OpenJDK镜像作为基础
FROM openjdk:8-jdk-alpine

# 将本地的Ave.java复制到容器内
COPY Ave.java /app/

# 设置工作目录
WORKDIR /app

# 编译Java代码
RUN javac Ave.java

# 运行程序,这里要注意:如果需要交互式输入,运行时要加参数
CMD ["java", "Ave"]
  • 构建镜像:
docker build -t java-average .
  • 关键!交互式运行容器:因为你的程序需要用户输入,所以运行时必须加-it参数来分配伪终端并保持标准输入打开:
docker run -it java-average

方法2:直接用Java镜像临时运行(无需Dockerfile)

  • 确保Ave.java在当前目录,先编译(也可以在容器里编译):
javac Ave.java
  • 直接运行容器,挂载当前目录到容器内,然后执行程序:
docker run -it -v $(pwd):/app openjdk:8-jdk-alpine /bin/sh -c "cd /app && java Ave"

第三步:排查常见错误

如果你运行时遇到错误,大概率是以下几种情况:

  • 交互式参数缺失:没加-it导致程序等待输入但无法接收,看起来像卡住了,这是最常见的问题。
  • 代码编译错误:比如变量未定义、拼写错误(像你之前的rea...),编译时会报错,仔细看控制台输出的错误信息就能定位。
  • 文件路径问题:Dockerfile里的COPY路径不对,或者挂载目录时路径错误,导致容器找不到.java或.class文件。
  • Java版本不兼容:如果你的代码用了高版本Java特性,却用了低版本镜像,会出现编译或运行错误,确保镜像的Java版本和你本地编译的版本一致。

你可以先按照上面的步骤补全代码、调整Docker运行命令,如果还是有具体的错误信息,把错误日志贴出来,我再帮你针对性解决~

内容的提问来源于stack exchange,提问作者Yazeed Alqahhas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:36:23