Java Error总结

来源:互联网 发布:python中get函数 编辑:程序博客网 时间:2024/05/29 12:28

Error: java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
env: intellij idea
reason: 自带的插件junit版本问题
steps: 卸载junit插件,替换为junit4

Error: java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.()V from class org.apache.hadoop.mapred.FileInputFormat
env:
reason: guava 大于17的版本导致
steps: 删除guava大于17的版本

Error: Exception in thread “main” java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
env: 使用maven构建项目并引包,使用idea打包引的jar包,直接上传提交运行
reason: 依赖问题
steps: 删除META-INF文件中的除maven 和 MANIFEST.MF的所有文件,或者使用maven管理项目,在pom文件中过滤文件

Error: java.lang.NoClassDefFoundError
env: Maven引包后在idea中run报错
reason: pom文件中引用该包时,指定了scope:provided
steps: 将pom文件中的provided删除

Error: org.apache.spark.SparkException: Task not serializable
env: 使用URLDecoder.decode(,)解码
reason: 使用URLDecoder.decode(,)不支持序列化,
steps: 需要为类继承extends Serializable

Error: Exception in thread “main” java.lang.IllegalArgumentException: Schema must be specified when creating a streaming source DataFrame. If some files already exist in the directory, then depending on the file format you may be able to create a static DataFrame on that directory with ‘spark.read.load(directory)’ and infer schema from it.
env:
reason: 创建DataStream时没有指明schema
steps: spark.readStream.schema(userSchema).json(path)

Error: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
env: es hbase spark
reason: 各个工具依赖不同版本的guava包,导致版本覆盖
steps: 将es依赖的jar重新映射my.,然后直接导入扩展jar,引用时使用my.,可以同时使用两个版本的jar

Error: 运行jar json 写入ES 远程提交任务 运行到foreach 没报错跳过运行
env:
reason: 指定的字段没有读到虽然 不报错但跳过了任务执行。
steps: 删除多余的字段

Error: Es、 Hbase 写入了字段some()
env: 写入ES时调用了Map.get(key:String) 这个方法返回Option。
reason: Map.get(key:String)返回Option类型,而不是真实值
steps: 再调用get方法可以得到真实值

Error: Missing artifact jdk.tools:jdk.tools:jar:1.6
env: eclipse maven 打开别人的项目
reason: 找不到tools.jar ,
steps: 在pom文件中指定安装的对应版本

Error: java从文件中读到的内容打印显示乱码,另一个java却不会,即使完全复制代码还是会出错
env: eclispe java 从json 读汉字后打印
reason: 每个java文件有各自的编码,错误是因为编码为GBK
steps: Eidt -> set Encodeing -> utf-8 选择 正确的编码格式(或者General/workspace/text file encoding)(新的工作环境应注意设置项目的编码) 注意会影响已有的汉字

Error: 比较字符串结果与要求不符
env: java
reason: java 中字符串比较使用 String.equals(String)。 使用==意味着两个字符串是同一个对象才为真
steps:

Error: 导出项目jar运行,运行时提示java.lang.ClassNotFoundException。没有找到类
env: intellij,从git上下载的项目与已有的重名,虽然重名命了已有的项目但intellil当做之前的对象
reason: 没有导入依赖,也没有java文件,在资源管理器中发现 根本没有类文件。打包时也没有类文件,只有几个jar包
steps: 点击open正确打开项目,

Error: spark streaming 指定目录有文件时,运行至BlockManagerInfo: Removed broadcast_3_piece0 on 停止,没有文件而后添加文件时还是停住
env: 输入文件指定为linux本地文件
reason: spark streaming 应指定为HDFS目录,虽然能响应,但读不了
steps: 改为hdfs目录

Error: maven 添加依赖时报错Missing artifact net.sf.json-lib:json-lib:jar:2.4
env: maven 添加依赖
reason: 这个jar依赖于特定的jdk,需要添加classifier标签
steps: jdk15