Scala: Compile server encountered fatal condition: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer问题

试图按照http://dblab.xmu.edu.cn/blog/971-2/里面的教程编译Scala代码时,出现报错:

hadoop@ubun:/usr/local/spark/code/wjw/wordcount$ scala test.scala
error: Compile server encountered fatal condition: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;
java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;

Scala版本是, 2.11.12
在这里插入代码片

进入Scala看一下,
在这里插入图片描述

java是8,scala官网显示2.11.12应该使用java9或者10,那就修改环境变量。

打开 ~/.bashrc 修改一下java的环境变量,改为

JAVA
<think>嗯,用户遇到了一个Java的异常,提示找不到`./config/kraft/server.properties`这个文件。首先,我需要理解这个命令的用途。用户执行的是Kafka的存储格式化命令,用于初始化Kafka的存储目录,特别是在Kraft模式下。Kraft模式是Kafka替代ZooKeeper的新模式,所以正确配置非常重要。 用户给出的命令是`./kafka-storage.sh format -t jZzo9DpBTI-teW4qtcfENQ -c ./config/kraft/server.properties`,但抛出了`NoSuchFileException`。这说明脚本无法找到指定的配置文件路径。接下来,我需要考虑可能的原因: 1. **路径是否正确**:用户使用的是相对路径`./config/kraft/server.properties`。相对路径是相对于当前工作目录的。用户可能是在错误的目录下执行命令,导致路径不正确。需要确认执行命令时所在的目录位置,以及该目录下是否存在`config/kraft/server.properties`文件。 2. **文件是否存在**:即使路径正确,也可能文件本身不存在。用户可能没有正确安装Kafka,或者配置文件被移动或删除。需要检查文件是否存在,并确认Kafka的安装结构是否正确。 3. **权限问题**:虽然错误提示是文件不存在,但有时权限不足也可能导致无法访问文件,但Java通常会抛出不同的异常,如AccessDeniedException,所以这个可能性较低,但也不能完全排除。 接下来,我需要指导用户如何逐步排查这些问题。首先,建议用户使用绝对路径来避免相对路径的问题。然后,检查文件的实际存在性,可以使用`ls`或者`find`命令来查找文件。此外,用户可能需要重新生成配置文件,如果文件确实缺失,可以参考Kafka的文档或重新解压安装包获取默认配置。 另外,用户可能对Kafka的Kraft模式不熟悉,可能没有正确设置配置文件的路径。需要提醒用户Kafka的目录结构,通常配置文件位于Kafka安装目录的`config/kraft/`下,所以用户可能需要进入Kafka的安装目录再执行命令,或者调整路径。 最后,建议用户确认集群ID的正确性,虽然这个问题不会导致文件找不到的错误,但也是配置Kafka时需要注意的地方。同时,查看日志和文档可以帮助用户进一步理解问题所在。 总结来说,用户的主要问题是路径配置错误导致文件无法找到,需要逐步检查路径的正确性、文件的存在性以及执行环境的正确性。</think>你遇到的错误是 `java.nio.file.NoSuchFileException: ./config/kraft/server.properties`,这意味着 Kafka 的存储格式化工具 **无法找到配置文件** `server.properties`。以下是可能的原因和解决方案: --- ### 1. **配置文件路径错误** - **问题**:你提供的配置文件路径 `./config/kraft/server.properties` 是相对路径,但当前工作目录下可能没有该文件。 - **验证方法**: ```bash # 检查文件是否存在 ls ./config/kraft/server.properties # 使用绝对路径更可靠(假设 Kafka 安装在 /opt/kafka) ls /opt/kafka/config/kraft/server.properties ``` - **解决方案**: - **使用绝对路径**:确保路径指向实际的配置文件位置。例如: ```bash ./kafka-storage.sh format -t jZzo9DpBTI-teW4qtcfENQ -c /opt/kafka/config/kraft/server.properties ``` - **确认当前目录**:如果使用相对路径,需确保当前目录是 Kafka 的安装根目录(即包含 `bin/` 和 `config/` 的目录)。 --- ### 2. **配置文件缺失** - **问题**:Kafka 的 Kraft 模式需要 `server.properties` 配置文件,但该文件可能未生成或被误删。 - **解决方案**: - 从 Kafka 官方包中重新提取配置文件: ```bash # 假设 Kafka 安装包已解压到当前目录 cp -r kafka_2.13-3.6.0/config ./ ``` - 或参考 [Kafka 文档](https://kafka.apache.org/documentation/)手动创建 `server.properties`。 --- ### 3. **Kraft 模式配置问题** - **关键参数**:在 `server.properties` 中需明确指定以下参数(否则格式化可能失败): ```properties # 存储目录配置(需提前创建目录) log.dirs=/tmp/kraft-logs # 节点角色(controller 或 broker) node.id=1 process.roles=controller,broker # 集群通信配置 listeners=PLAINTEXT://:9092,CONTROLLER://:9093 controller.listener.names=CONTROLLER ``` --- ### 4. **执行步骤示例** 1. **创建存储目录**: ```bash mkdir -p /tmp/kraft-logs ``` 2. **使用绝对路径执行命令**: ```bash # 假设 Kafka 安装在 /opt/kafka cd /opt/kafka bin/kafka-storage.sh format -t jZzo9DpBTI-teW4qtcfENQ -c config/kraft/server.properties ``` --- ### 5. **其他注意事项** - **集群 ID 生成**:如果未指定集群 ID (`-t` 参数),可通过以下命令生成唯一 ID: ```bash ./kafka-storage.sh random-uuid ``` - **日志排查**:若仍失败,检查 Kafka 日志(默认在 `logs/` 目录)以获取更详细的错误信息。 --- ### 总结 - **核心问题**:路径错误或文件缺失。 - **解决流程**: 1. 确认 `server.properties` 存在且路径正确。 2. 检查配置文件内容是否符合 Kraft 模式要求。 3. 使用绝对路径执行命令。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值