kafka/bin/kafka-run-class.sh: line 342: exec: java: not found

news2024/11/18 22:45:42

本来jps看了下,kafka和zookeeper都起来了,手痒,非要换宝塔的进程守护管理器,选目录为/home/kafka,命令为/home/kafka/bin/zookeeper-server-start.sh  /home/kafka/config/zookeeper.properties

就在日志里看到 kafka/bin/kafka-run-class.sh: line 342: exec: java: not found

网上搜了大量的资料,有的说

原因:java环境变量的问题,kafka默认引用的java路径:/user/bin/java,但是我们实际路径不是这个。看有的博主说改环境变量,或者设置软连接指向/user/bin/java这个路径。
解决方案:首先,不推荐修改环境变量,其次创建软连接的方式,确实能解决这个报错,但是亲测执行后会有其他报错,kafka启动的时候获取java版本时会报错。

我就去vim看了下这个sh文件的342行看看究竟,发现是个判断

# Which java to use
if [ -z "$JAVA_HOME" ]; then
  JAVA="java"
else
  JAVA="$JAVA_HOME/bin/java"
fi

莫非,又莫非……到底是走了哪个逻辑分支?

于是毒丸计划开始,JAVA="java"改成JAVA="java1",保存重新在进程管理器点启动,报错,去看日志: /home/kafka/bin/kafka-run-class.sh: line 342: exec: java1: not found

哇咔咔,你果然是没判断出 JAVA_HOME已经有值了,我本可以武断的结束这个闹剧

但是一想,YYDSB啊,为啥设置了却找不到啊,认知啊,认知才是不同身份的人的最大的差别! 身份?!!!莫非是因为我SSH登录的?于是我又查到了这位仁兄的资料:

 

通过ssh登陆之后会发现找不到JAVA_HOME ,我的JAVA_HOME是定义在/etc/profile 里面的。

研究后发现远程登录和直接登录执行的文件是不一样的:

    /etc/profile: 当用户登录时,该文件被执行.
    /etc/bashrc: 当bash shell被打开时,该文件被执行.

ssh作为远程登录的方式进入,当然就无法触发/etc/profile的执行,所以会发生找不到JAVA_HOME的问题,所以需要将java的配置信息配置到bashrc的文件中去,配置步骤如下所示:

.bashrc是一个隐藏的文件,要打开并修改该文件需要:

(1) 命令 vim ~/.bashrc 进入到文件;

(2) 直接按 i 键可以对文件进行修改, Esc + :+ wq退出并保存修改之后的文件

(3) 命令 :source ~/.bashrc 更新 .bashrc

对该文件进行修改保存后,在执行相关的操作,就不会发生如上的问题啦。

好吧,我打开了贴进去

#java environment
JAVA_HOME=/home/jdk1.8.0_351
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

不成啊,还是老毛病,还是下硬手吧,把if给灭了,多余

# Which java to use
if [ -z "$JAVA_HOME" ]; then
  JAVA="/home/jdk1.8.0_351/bin/java"
else
  JAVA="$JAVA_HOME/bin/java"
fi

再去进程守护管理器,点启动,欧了

这世界,就是有时候没地儿说理去!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/157349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马蹄集 整除的总数

整除的总数 难度&#xff1a;白银 时间限制&#xff1a;1秒 巴占用内存&#xff1a;64M 输入正整数N和M,其中N<M。求区间[N,M]中可被K整除的总数。 格式 输入格式&#xff1a;输入正整数N,M和K,空格分隔。 输出格式&#xff1a;输出整型 #include <bits/stdc.h&g…

RabbitMQ(二)使用Docker安装

目录1. 拉取 RabbitMQ 镜像2.启动 RabbitMQ 容器3.查看 RabbitMQ 是否启动官网地址&#xff1a;https://www.rabbitmq.com/ 下载地址&#xff1a;https://www.rabbitmq.com/download.html 这篇文章为了方便初学者入门&#xff0c;在 linux 环境下用 docker 直接安装 RabbitMQ&…

【JavaSE】String相关知识

String \ StringBuilder \ StringBufferString的值是不可变的&#xff0c;使用“”或者“”的方法尝试改变String的值并不是在原本的基础上修改&#xff0c;而是赋值给了新的字符串常量引用StringBuffer是线程安全的&#xff0c;使用的是无脑加synchronized的方法这三者的运行速…

10分钟上手一款好用的服务器节点监测工具(Server 酱)

Server 酱简介 Server酱&#xff0c;英文名「ServerChan」&#xff0c;是一款「手机」和「服务器」、「智能设备」之间的通信软件。说人话&#xff1f;就是从服务器、路由器等设备上推消息到手机的工具。开通并使用上它&#xff0c;只需要一分钟&#xff1a; 微信扫码登入设置…

Mysql可视化软件-Navicat和SQLyog

Navicat 可以将mysql可视化的一个软件 可以避免一直在命令行里面敲代码&#xff0c;很难绷 连接 密码写一个你能记住的&#xff0c;不然打不开连接 对应的IP可以是localhost或者127.0.0.1 都是本机 端口号就我们在my.ini写的那个 然后进行我们上面说的操作-新建一个数据库先…

Linux操作系统常用命令

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

【uniapp】记录地址管理页面

uniapp中的地址管理页面 <template><view class"container"><view class"oldaddress" v-for"(item,index) in cardInfo" :key"index"><view class"topview"><view class"name">{{i…

线缆行业单绞机控制算法(详细图解+代码)

在了解单绞机之前需要大家对收放卷以及排线控制有一定的了解,不清楚的可以参看下面几篇博客,这里不再赘述,受水平和能力所限,文中难免出现错误和不足之处,诚恳的欢迎大家批评和指正。 收放卷行业开环闭环控制算法 PLC张力控制(开环闭环算法分析)_RXXW_Dor的博客-CSDN博…

Win10专业版系统Docker安装、配置和使用详细教程

一、win10专业版系统首先需要开启硬件虚拟化及Hyper-V功能&#xff0c;才能进行Docker for Windows软件安装。 如何开启硬件虚拟化&#xff0c;自行百度。可在任务栏中查看虚拟化是否开启。 win10系统&#xff0c;打开控制面板-“应用”-“程序和功能”&#xff0c;开启Hyper-V…

webpack 的基本使用

webpack 的基本使用配置 npm 镜像源创建列表隔行变色案例新建空白项目目录&#xff0c;初始化 package.json 配置文件通过 npm 安装 jquery新建 src 源代码目录index.htmlindex.js检查网页效果webpack 的安装webpack 的安装dependencies 与 devDependencies参数 -S 及 --save参…

【Linux工具】-yum/gdb

yum/gdb一&#xff0c;yum1&#xff0c;简介2&#xff0c;软件下载3&#xff0c;软件删除4&#xff0c;yum源与扩展yum源5&#xff0c;常见选项二&#xff0c;gdb1&#xff0c;简介2&#xff0c;gdb相关指令一&#xff0c;yum 1&#xff0c;简介 在Linux下&#xff0c;下载软…

中国芯片迎难而上,4纳米芯片量产,美媒:美国或肠子都悔青了

日前美国媒体《财富》杂志发表相关文章&#xff0c;认为对中国的芯片限制对美国是弊大于利&#xff0c;倒逼中国芯片加快芯片产业发展进程&#xff0c;而美国芯片却蒙受了太大的损失&#xff0c;与美国方面打擂台。美媒发表这篇文章之际&#xff0c;恰恰是中国芯片企业宣布近期…

TikTok不可思议的崛起

武汉瑞卡迪电子商务有限公司&#xff1a;《华尔街日报》网站11月5日发表题为《TikTok不可思议的崛起》的文章&#xff0c;全文摘编如下&#xff1a; 在短短五年里&#xff0c;TikTok已经爆发成为一种流行文化现象以及一个地缘政治闪爆点。它是全世界最热门的应用&#xff0c;被…

Vue纯前端:榜单管理系统

文章目录:一、主要功能&#xff1a;二、实现效果&#xff1a;1.主页:2.注册&#xff1a;3.登录&#xff1a;4.列表界面&#xff1a;5.添加应用界面&#xff1a;6.修改应用界面&#xff1a;7.模糊查询&#xff1a;三、整体架构&#xff1a;四、配置文件说明&#xff1a;五、功能…

icp备案号怎么申请?icp备案号哪里查询

ICP备案就是对网站的开办者信息的备案登记&#xff0c;以确保网站开办者的真实合法性。购买域名后&#xff0c;需要通过ICP备案才能开通域名解析服务。未通过ICP备案的网站&#xff0c;会有被查处关停的风险&#xff0c;备案的目的就是为了防止在网上从事非法的网站经营活动&am…

nexus可以访问但是maven无法拉取jar的一种答案

现象&#xff1a; 错误日志&#xff1a; Could not transfer metadata com.*.*:*-common-lib:2.0.0-SNAPSHOT/maven-metadata.xml from/to nexus-snapshot (https://mvn.*.*.com.cn/repository/snapshots/): sun.security.validator.ValidatorException: PKIX path building f…

【操作系统实验/Golang】实验1:进程调度(FCFS, SJF, RR)

1 实验问题描述设计程序模拟进程的先来先服务FCFS、短作业优先SJF和时间片RR算法的调度过程。假设有n个进程分别在T1, … ,Tn时刻到达系统&#xff0c;它们需要的服务时间分别为S1, … ,Sn。如果选择RR算法&#xff0c;还需要指定时间片大小q。分别采用三种进程调度算法进行调度…

Java EE|多线程之线程状态与线程安全

文章目录一、线程状态线程状态分类线程各状态剖析线程状态的转移二、线程安全线程不安全举例线程安全概念线程不安全的原因剖析Java标准库中的线程安全类与不安全类线程不安全问题的规避方案一&#xff1a;加监视锁方案二&#xff1a;加volatile关键字方案三&#xff1a;使用wa…

Mybatis框架,以 paramDTO对象集合形式进行批量查询。

在日常工作中&#xff0c;我们时常遇到数据库表中以 (name code) 为唯一索引&#xff0c; 在数据查询时需要根据这一组条件查询出表中唯一1条数据。 有时&#xff0c;我们的入参是 List<DTO> &#xff0c;需要进行批量查询数据。那么可以使用以下的SQL来进行数据的查询…

崔宝秋国际开源经验在小米开花 | 开源英雄

【编者按】崔宝秋的开源人生&#xff0c;来源于内心的真正热爱&#xff0c;和一路的升级打怪。从少时与计算机结缘到成为自由软件信徒&#xff0c;从IBM、雅虎、LinkedIn 到小米这一路走来&#xff0c;从一个开源的追随者成长为开源的推动者&#xff0c;小米的开源文化、丰硕的…