做java时一些问题的解决
2016-07-18 23:12
302 查看
1、java.lang.classnotfoundexception(这个是在做hadoop时遇到)
因为我的jdk安装了openJDK,重新安装sunJDk就行了。
2.改了java home,但是java -version仍然是原来的版本
解决:其实java -version是不准的,它只会显示你电脑安装的最新版本。
3.这个也是hadoop时出现的错
16/01/01 21:48:01 WARN mapred.LocalJobRunner: job_local_0001
java.lang.NullPointerException
at org.apache.hadoop.io.serializer.SerializationFactory.getSerializer(SerializationFactory.java:73)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:965)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:674)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
16/01/01 21:48:01 INFO mapred.JobClient: map 0% reduce 0%
16/01/01 21:48:01 INFO mapred.JobClient: Job complete: job_local_0001
16/01/01 21:48:01 INFO mapred.JobClient: Counters: 0
解决:问题出的很挫,主要是因为把输出的intWritable写成了integer。
4.对字符串使用replaceAll()方法替换 * ? + / | 等字符的时候会报以下异常:Dangling meta character '*' near index 0
这主要是因为这些符号在正则表达示中有相应意义。
只需将其改为 [*] 或 //* 即可。(但其实我在split中是\\*)
因为我的jdk安装了openJDK,重新安装sunJDk就行了。
2.改了java home,但是java -version仍然是原来的版本
解决:其实java -version是不准的,它只会显示你电脑安装的最新版本。
3.这个也是hadoop时出现的错
16/01/01 21:48:01 WARN mapred.LocalJobRunner: job_local_0001
java.lang.NullPointerException
at org.apache.hadoop.io.serializer.SerializationFactory.getSerializer(SerializationFactory.java:73)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:965)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:674)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
16/01/01 21:48:01 INFO mapred.JobClient: map 0% reduce 0%
16/01/01 21:48:01 INFO mapred.JobClient: Job complete: job_local_0001
16/01/01 21:48:01 INFO mapred.JobClient: Counters: 0
解决:问题出的很挫,主要是因为把输出的intWritable写成了integer。
4.对字符串使用replaceAll()方法替换 * ? + / | 等字符的时候会报以下异常:Dangling meta character '*' near index 0
这主要是因为这些符号在正则表达示中有相应意义。
只需将其改为 [*] 或 //* 即可。(但其实我在split中是\\*)
相关文章推荐
- Java实现 二叉搜索树算法(BST)
- Java烧脑驴游(四)--基本数据类型
- 如何创建并运行java线程
- Java烧脑驴游(三)--对象和类
- java中的加锁机制-Lock
- java中的单例模式
- eclispe基础配置
- JAVA之Swing设计
- “‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件”解决过程
- Java - PAT - L1-032. Left-pad(天梯赛决赛题目)
- ajax文件和文件其他属性进行上传给后台spring mvc
- Java烧脑驴游(二)--基础语法
- 有return的情况下try catch finally的执行顺序
- spring笔记:第二章(通过xml装配bean)
- Java 内部类的详解
- java学习之反射
- java学习之反射
- java学习之反射
- java学习之反射
- Java复制数组