当前位置: 首页 > news >正文

如何让hustoj支持Java判题

问题描述

在hustoj中输入Java代码后,报错:

答案错误 AC:0%
查看错误信息:
Execution error, USE_DOCKER:1 !
>  You need to install compiler VM or runtime for your language.

需要安装JDK编译器。

解决方案

1. 修改Dockerfile安装Java环境

新安装的系统需要 重启才能判java,jdk是安装在docker容器中的,外部安装jdk不会起作用。先重启试试,不行,再进行下一步。

修改jdk的版本,以root身份到/home/judge/src/install目录下修改Dockfile文件(内有注释),然后运行bash docker.sh

编辑文件:sudo vim /home/judge/src/install/Dockerfile
添加以下内容:

RUN     DEBIAN_FRONTEND=noninteractive  apt-get -y install --no-install-recommends        default-jdk
RUN     DEBIAN_FRONTEND=noninteractive  apt-get -y install --no-install-recommends        openjdk-11-jdk-headless
RUN     DEBIAN_FRONTEND=noninteractive  apt-get -y install --no-install-recommends        openjdk-17-jdk-headless
RUN     DEBIAN_FRONTEND=noninteractive  apt-get -y install --no-install-recommends        ecj

执行命令:

cd /home/judge/src/install && bash docker.sh

然后重启服务器。

2. 解决编译错误问题

再次在hustoj中输入Java代码后:

  1. 显示:编译中 0%
  2. 显示:编译错误

查看编译信息:

Main.java:9: 错误: 非法的类型开始
import java.io.*;
^
Main.java:9: 错误: 需要<标识符>
import java.io.*;
^
Main.java:10: 错误: 非法的类型开始
import java.util.*;
^
Main.java:10: 错误: 需要<标识符>
import java.util.*;
^
4 个错误

3. 进一步解决方案

  • JDK版本问题:目前只支持sun原版jdk和openjdk,其他jdk暂不能保证支持。
  • Ubuntu系统安装源问题
    • 执行  sudo apt-get install openjdk-7-jdk  
    • 报错:E: Package ‘openjdk-7-jdk’ has no installation candidate,是因为Ubuntu16.04的安装源已经默认没有openjdk7了。推荐使用ubutnu STL 20.04 或者24.04
    • 可以选择安装其他版本:
      sudo apt install default-jdk     # version 2:1.11-72build2
      sudo apt install openjdk-11-jdk-headless    # version 11.0.15+10-0ubuntu0.22.04.1
      sudo apt install openjdk-17-jdk-headless   # version 17.0.3+7-0ubuntu0.22.04.1
      sudo apt install ecj # version 3.16.0-1
      

注意事项

  • Java使用OpenJDK 11.0.9.1编译,命令为javac -J-Xms32m -J-Xmx256m Main.java
  • 如果您的代码中没有public class,请将入口类命名为Main

    如果问题仍未解决, 可以点击下方名片协助。

相关文章:

  • 开放词汇检测分割YOLOE从pytorch到caffe
  • Spring状态机
  • Docker简述
  • React Hooks 的原理、常用函数及用途详解
  • Python打卡训练营学习记录Day49
  • 【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
  • 2025年渗透测试面试题总结-小鹏[社招]车联网工程师(题目+回答)
  • 云南净餐馆备考单选题及答案
  • Ⅳ.计算机二级选择题(函数)
  • 前端开发面试题总结-vue2框架篇(一)
  • C++实现分布式网络通信框架MPRPC(1)--预备知识
  • DL00871-基于深度学习YOLOv11的盲人障碍物目标检测含完整数据集
  • 分布式光纤声振传感技术原理与瑞利散射机制解析
  • MySQL的pymysql操作
  • 如何选择适合你的分页方案
  • Coze 和 Dify 对比
  • NLP-文本表征(2011-2022)
  • Linux 基础入门操作 第十三章 嵌入式数据库介绍1
  • 自然语言处理——Transformer
  • 闭合逻辑检测(保留最大连通分量)
  • 通常做网站要多久/seo搜索引擎优化总结
  • 课桌公司网站建设/小白如何学电商运营
  • 镇江建设银行网站/外链网
  • 学做效果图的网站有哪些/网络营销策略理论有哪些
  • 朝阳区社会建设网站/win优化大师怎么样
  • 织梦做的网站能做seo吗/产品推广公司