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

flink程序本地运行报: A JNI error has occurred和java.lang.NoClassDefFoundError

1.问题描述

        在idea中运行flink job程序出现如下错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/io/FileInputFormat
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:650)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.common.io.FileInputFormat
    at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 7 more

2.问题分析

2.1代码问题分析

package test;import org.apache.flink.api.java.io.TextInputFormat;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;/*** @Description* @Author * @Date 2024/5/23* @Version 1.0*/
public class ReadTextDemo {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();TextInputFormat textInputFormat = new TextInputFormat(null);DataStreamSource<String> source = env.readFile(textInputFormat, "D:\\datatest\\readtext.txt");source.print();env.execute("readText test");}
}

        代码编译没有问题,但是却报类无法加载的异常,而且报错信息出现A JNI error has occurred,因此,猜测大概率和JDK有关,网上查了下解决方案:解决Java编译时错误:A JNI error has occurred,please check your installation and try again_java_脚本之家

        但是通过验证,本地的JDK环境配置没有问题:

        因此排除JDK问题的猜想。

2.2 pom配置问题分析

        类无法正常加载还一种可能是pom依赖出现了问题,pom配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>xxx-flink</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><flink.version>1.15.0</flink.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-clients</artifactId><version>${flink.version}</version><scope>provided</scope></dependency></dependency></dependencies><build><plugins><plugin><!--<groupId>org.apache.maven.plugins</groupId>--><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><artifactId>maven-assembly-plugin </artifactId><configuration><descriptorRefs><!-- 此处填写打包后jar包后添加的标识 --><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><!-- 此处填写程序的主入口(main方法) --><mainClass>cn.xxx.Main</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build></project>

        对pom内容进行分析,发现flink jar依赖多了一行:

        <scope>provided</scope>表示为当前依赖在打包过程中,不需要打进去,需要由运行的环境来提供,因此怀疑是它导致的,然后就将它注解掉,再次运行,发现程序正常执行。

相关文章:

flink程序本地运行报: A JNI error has occurred和java.lang.NoClassDefFoundError

1.问题描述 在idea中运行flink job程序出现如下错误&#xff1a; Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/io/FileInputFormat …...

yolox-何为EMA?

何为EMA&#xff1f; 定义&#xff1a; 滑动平均/指数加权平均&#xff1a;用来估计变量的局部均值&#xff0c;使得变量的更新与一段时间内的历史取值有关&#xff0c;滑动平均可以看作是变量的过去一段时间取值的均值。 优点&#xff1a; 相比于直接赋值&#xff0c;滑动平均…...

Java:String、StringBuffer和StringBuilder的区别

参考&#xff1a; https://blog.csdn.net/kingzone_2008/article/details/9220691 https://blog.csdn.net/itchuxuezhe_yang/article/details/89966303 String 常量字符串&#xff0c;每次修改都是会新创建一个字符串&#xff0c;当要频繁修改字符串的时候不建议使用 String S…...

虚拟化技术 分布式资源调度

一、实验内容 实现分布式资源调度 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装VMware Workstation Pro已安装Windows Server 2008 R2 x64已安装vCenter Server 三、实验步骤 将主机esxi1和esxi2加入…...

【Element-plus】vue组合式中使用el-upload通过oss接口上传图片流程(可直接复制使用)

Html <el-upload:actionossUrl:on-success"handleImgSuccess":headers"{Authorization:token}"><el-icon><Plus /></el-icon>点击上传图片</el-upload> JS const ossUrl ref("") ossUrl.value 【你的ossUrl】…...

C++ 数据结构算法 学习笔记(33) -查找算法及企业级应用

C 数据结构算法 学习笔记(33) -查找算法及企业级应用 数组和索引 日常生活中&#xff0c;我们经常会在电话号码簿中查阅“某人”的电话号码&#xff0c;按姓查询或者按字母排 序查询&#xff1b;在字典中查阅“某个词”的读音和含义等等。在这里&#xff0c;“电话号码簿”和…...

【Linux】在Ubuntu 16.04上安装Gerrit + PostgreSQL + Apache服务

Gerrit是一个基于Git版本控制系统的运行于Web浏览器上的Code Review工具&#xff0c;本文叙述如何在Ubuntu 16.04上安装Gerrit服务。&#xff08;当然安装Gerrit的方法有很多&#xff0c;本文只是其中之一&#xff09; 文章目录 前提安装PostgreSQL数据库并创建用户下载、配置和…...

数据倾斜那些事儿

目录 一、什么是数据倾斜&#xff1f; 二、预判与预防 三、躲闪策略 四、硬刚策略 一、什么是数据倾斜&#xff1f; 之前在大厂当了好几年的sqlboy&#xff0c;数据倾斜这个“小烦人精”确实经常在工作中出没。用简单的话来说&#xff0c;数据倾斜就像是“贫富差距”在数据…...

python考试成绩管理与分析:从列表到方差

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、考试成绩的输入与列表管理 二、成绩的总分与平均成绩计算 三、成绩方差的计算 四、成…...

Excel某列中有不连续的数据,怎么提取数据到新的列?

这里演示使用高级筛选的例子&#xff1a; 1.设置筛选条件 在D2单元格输入公式&#xff1a;COUNTA(A4)>0 这里有两个注意事项&#xff1a; *. 公式是设置在D2单元格&#xff0c;D1单元格保持为空&#xff0c; **. 为什么公式中选A4单元格&#xff0c;A列的第一个数据在A3…...

翻译《The Old New Thing》- What does it mean when a display change is temporary?

What does it mean when a display change is temporary? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080104-00/?p23923 Raymond Chen 2008年01月04日 什么叫临时性的显示设置变更&#xff1f; 当您调用ChangeDisplaySettings函数时…...

【C语言】char,short char,long char分别是多少字节,多少位,多少bit

一&#xff0c;char&#xff0c;short char&#xff0c;long char分别是多少字节 在 C 语言中&#xff0c;char、short、int、long 这些数据类型的大小是平台相关的&#xff0c;它们的大小取决于编译器和操作系统的实现。然而&#xff0c;它们的大小通常遵循以下规则&#xff…...

新V 系首批订单交付!苏州金龙助新疆游骏文旅集团打造旅运新标杆

热播剧集《我的阿勒泰》收官不久&#xff0c;6月新疆旅游旺季将至。 2024年5月下旬&#xff0c;苏州金龙海格客车新V系首批30辆正式交付新疆客户&#xff01; 作为苏州金龙海格客车新V系首批用户&#xff0c;新疆游骏文旅集团董事长王红强表示&#xff1a;“海格新V系从外观、…...

【Django】从零开始学Django【2】

五. CBV视图 Django植入了视图类这一功能&#xff0c;该功能封装了视图开发常用的代码&#xff0c;无须编写大量代码即可快速完成数据视图的开发&#xff0c;这种以类的形式实现响应与请求处理称为CBV(Class Base Views)。 1. 数据显示视图 数据显示视图是将后台的数据展示…...

【leetcode--383赎金信(使用Counter一行代码结束战斗)】

magazine中的字母组成一封赎金信&#xff0c;一个字母只能被用一次&#xff0c;看是否能完成制定赎金信 灵神思路&#xff1a;使用python内置Counter def canConstruct(self, ransomNote: str, magazine: str) -> bool:return Counter(ransomNote) < Counter(magazine) …...

pdf打开方式怎么设置默认?分享这几种设置方法

pdf打开方式怎么设置默认&#xff1f;你是否曾遇到过打开PDF文档时&#xff0c;默认的打开程序并非你所需要的&#xff0c;从而影响了工作效率&#xff1f;别担心&#xff0c;本文将为你详细解读如何设置PDF的默认打开方式&#xff0c;让你的工作更加高效便捷。 首先&#xff0…...

杂谈|RestFul和http的区别

前言 今天和我一组的小伙伴&#xff0c;在对接一个接口时&#xff0c;客户将DELETED请求设置了body参数&#xff0c;导致一个功能反复搞了半天&#xff0c;今天就来说下这两者的区别 1.HTTP概述 HTTP&#xff08;HyperText Transfer Protocol&#xff09;是一种用于从WWW&…...

Nginx的Sub模块

Nginx 是一款高性能的 Web 服务器和反向代理服务器,其灵活的模块化设计使其成为许多开发者和运维人员的首选。其中,Sub 模块作为 Nginx 的一部分,提供了强大的字符串替换和正则匹配功能,本文将深入探讨 Sub 模块的用途、示例以及使用中需要注意的事项。 1. Sub 模块的用途…...

使用大模型做应用的一些问题

使用了一段时间的大模型应用&#xff0c;遇到一些问题&#xff0c;分享给大家。 使用大模型的基本情况 使用了下面三种大模型&#xff1a; 百度 ERNIE-3 kimi 大模型 chatGPT3.5 使用的大模型应用架构&#xff1a; langchainlangchain RAGlangchain Agentvector 数据…...

2024 前端面试每日1小时

三日 1. 如何理解Vue的模板编译原理 Vue的模板编译实际就是将模板字符串通过解析、优化和代码生成等步骤转换为渲染函数的过程。这个过程中&#xff0c;AST扮演了非常重要的角色&#xff0c;它用树形结构描述了模板的内容和结构&#xff0c;是编译过程的核心数据结构&#xff…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...