当前位置: 首页 > 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…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...