本人参考书上的源代码在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
...
怎么破?
怎么解决?
谢谢~
这个异常应该和源码没有关系。
class文件结构里最开头4字节是
Magic Number
,也就是0xCAFEBABE
。后面接的4个字节就是题主异常信息中的
Minor version
和Major version
。第5、第6是
Minor version
,第7、第8则是Major version
。而Java的版本号是从45开始的,参考:
真不知道知道这些有什么用,题主试试用Java7以上编译。
参考:http://en.wikipedia.org/wiki/Java_class_file