大数据 - hadoop上java
高洛峰
高洛峰 2017-04-17 13:21:52
[Java讨论组]

本人参考书上的源代码在hadoop上做实验,源代码如下:

public class URLCat {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws Exception {
InputStream in = null;
try {
in = new URL(args[0]).openStream();
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}
}
}

程序编译完成后,执行:

    hadoop URLCat hdfs://文件路径...

报错:

    Exception in thread "main" java.lang.UnsupportedClassVersionError: URLCat:Unsupported major.minor version 51.0
    ...

怎么破?
怎么解决?
谢谢~

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
ringa_lee

这个异常应该和源码没有关系。
class文件结构里最开头4字节是Magic Number,也就是0xCAFEBABE
后面接的4个字节就是题主异常信息中的Minor versionMajor version
第5、第6是Minor version,第7、第8则是Major version
而Java的版本号是从45开始的,参考:

J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

真不知道知道这些有什么用,题主试试用Java7以上编译。
参考:http://en.wikipedia.org/wiki/Java_class_file

阿神

java 版本不对

阿神

源码的话,应该没问题,如果是这样报错的话,我遇到过,是因为环境变量和conf文件指定的问题,找不到你所指定的URLCat这个类,你只要配置好你所需要使用的集群的配置文件,并且指定好对应集群的客户端,以及相关的各种库就可以了,当时我也是搞了很久,在书上对配置的东西弱化了,没怎么讲,只能自己去实践。
你可以参考一下这个文章:
http://segmentfault.com/blog/akunamatata/1190000002610514
这里面详细讲了如何配置环境变量,编译,执行,以及如何指定配置文件

高洛峰

从异常提示的信息的来看就是不支持的class文件版本异常,建议更换更高版本的jdk

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号