今天倒腾Hadoop,要修改源码,由于之前搞研究是基于hadoop1.0.3来做的,所以这次也用的这个版本,但是我电脑上Java的版本是1.8以上的,结果用ant编译hadoop源码报错,错误大概是这样:

compile-mapred-classes:
Trying to override old definition of task jsp-compile
[javac] /Users/lili/快盘/hadoop-1.0.3/build.xml:540: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 14 source files to /Users/lili/快盘/hadoop-1.0.3/build/classes
[javac] 警告: [options] 未与 -source 1.6 一起设置引导类路径
[javac] /Users/lili/快盘/hadoop-1.0.3/src/mapred/org/apache/hadoop/mapreduce/lib/partition/InputSampler.java:319: 错误: 不兼容的类型: Object[]无法转换为K[]
[javac] K[] samples = sampler.getSample(inf, job);
[javac] ^
[javac] 其中, K,V是类型变量:
[javac] K扩展已在方法 <K,V>writePartitionFile(Job,Sampler<K,V>)中声明的Object
[javac] V扩展已在方法 <K,V>writePartitionFile(Job,Sampler<K,V>)中声明的Object
[javac] 1 个错误
[javac] 1 个警告

一看估计是Java版本问题导致的,然后就想降低Java版本去编译一次,谁知下载下来个JDK1.7安装确报错,错误类似于这样:

果然一搜索好多人遇到这个问题,在一个博客里找到一个比较好的解决方案,博客地址:http://blog.csdn.net/daiyelang/article/details/42779645,将解决思路copy过来了,如果不妥,请通知删除。解决思路如下:

1.下载 好jdk 1.7(1.8) 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2.打开下载 好的jdk 安装包的DMG .这时候你会在finder在左侧能看到已经被挂上了。

3.运行:
pkgutil --expand /Volumes/JDK\ 8\ Update\ 05/JDK\ 8\JDK\ 8.pkg /Users/wxxu/Documents/jdk8.unpkg //此处可能每个人的8.pkg文件目录不一样,大家只要进到自己的8.pkg就可以了 解释: 通过pkgutil 命令把刚刚下载好的dmg解压开来,存放到/Users/wxxu/Documents/jdk8.unpkg这个目录中去 4. 走入到/Users/wxxu/Documents/jdk8.unpkg目录中去。你可以通过finder也可以通过终端命令进入。 5. 找到目录下的 Distribution 文件,用vim 或者是编辑器打开。
6. 找到里面的 pm_install_check 这个函数。 function pm_install_check() {
if(!(checkForMacOSX('10.7.3') == true)) {
my.result.title = 'OS X Lion required';
my.result.message = 'This Installer is supported only on OS X 10.7.3 or Later.';
my.result.type = 'Fatal';
return false;
}
return true;
}
你会发现,他在这里去判断 你的系统是不是10.7.3以后的,因为现在Yosemide还不是正式版本,所以在这里会检查不过。 修改成: function pm_install_check() {
return true;
}
保存。
7.然后我们重新打包。命令如下:
pkgutil –flatten /Users/wxxu/Documents/jdk8.unpkg/ /Users/wxxu/Documents/jdk8.pkg 8. 打开 重新打包的jdk8.pkg文件。就会发现可以正常安装了。
安装成功后,再命令行中输入java -version显示如下
java version "1.8.0"Java(TM) SE Runtime Environment (build 1.8.0-b132)Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
然后就心情享受吧!!!

Mac中下载JDK手动更新出现“只支持10.7.3以上的系统版本”问题解决方案的更多相关文章

  1. linux中下载JDK 1.7

    今天想linux下安装java,然后就使用wget来下载jdk1.7,结果老是报错,大概意思是cookie有问题.如下图: 然后网上看了一下,下面的地址可以下载: wget --no-cookies ...

  2. mac中配置jdk环境

  3. js将HTML中table导出到EXCEL word (只支持IE) 另用php 配合AJAX可以支持所有浏览器

    转载请注明来源:https://www.cnblogs.com/hookjc/ <HTML>     <HEAD>       <title>WEB页面导出为EXC ...

  4. 苹果MAC中安装并搭建Android开发环境的详细步骤

    Android的开发平台搭建主要需要的工具有:Java虚拟机JDK.Eclipse.Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安 ...

  5. mac中使用 sourcetree 的快速配置和git服务器登录

    问题: 1.mac中下载sourcetree配置仓库地址,一直在提示输入密码,无法登录成功,更无法获取源码. 2.找不到配置仓库时的账号密码,只看到地址. 场景: git服务器:自己的GIT服务器,非 ...

  6. FastDFS是纯C语言实现,只支持Linux,适合以中小文件为载体的在线服务,还可以冗余备份和负载均衡

    一.理论基础 FastDFS比较适合以中小文件为载体的在线服务,比如跟NGINX(APACHE)配合搭建图片服务器. 分布式文件系统FastDFS FastDFS是纯C语言实现,只支持Linux.Fr ...

  7. Mac OS X 中安装JDK 7

    通过Mac系统的更新安装Java的版本均为JDK 6的版本,如果想要在Mac上安装JDK 7,就需要到Oracle的网站上去下载相应的安装包. 下面为详细教程: 最新版本为JDK8,目前需求JDK7够 ...

  8. mac中安装Jenkins+jdk

    Jenkins是基于Java开发的一种持续集成工具,用于持续的软件版本发布/测试项目,并监控外部调用执行的工作.简单来说就是自动化测试+部署. 首先我们需要安装jdk,注意,目前jenkins只支持j ...

  9. oracle官网下载jdk跑不动太慢了,给出快速下载方式mac

    oracle官网下载jdk8跑不动太慢了,给出快速下载方式 之前在oracle官网下载jdk1.8实在速度太慢,只有20K左右的下载速度,有时候甚至不动,最关键的慢也就算了,cookie有效期有限,有 ...

随机推荐

  1. python with关键字学习

    1.with语句时用于对try except finally 的优化,让代码更加美观, 例如常用的开发文件的操作,用try except finally 实现: f=open('file_name', ...

  2. Oracle RAC备份异机单实例恢复演练

    本文只节选了操作方案的部分章节: 3.   操作步骤 3.1. 异机单实例Oracle数据库软件安装 在异机上进行单实例Oracle数据库软件安装.该步骤过程不再本文中重复描述,如果对安装过程存在疑问 ...

  3. 【java】Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签

    摘录某个工程的 web.xml 文件片段: 访问顺序为1—>2—>3—>4,其中2和3的值必须相同. url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命 ...

  4. VSCode调试go

    VSCode调试go语言出现:exec: "gcc": executable file not found in %PATH%   1.问题描述 由于安装VS15 Preview ...

  5. BZOJ 3969 Low Power 解题报告

    我们首先将所有电池排序,那么我们可以找到一组最优方案,使得一台机器的能量之差是相邻两电池的能量之差. 然后我们就二分这个答案,从前往后贪心地选这个数对,然后看是否所有的数对都是满足条件的. 假设这个数 ...

  6. 类型<T> where T:class的用法

    public void Delete<T>(List<T> EntityList) where T : class, new() 就是说T必须是一个类(class)类型,不能是 ...

  7. SQL Server 索引结构及其使用(一)

    转载:SQL Server 索引结构及其使用(一) 作者:freedk 一.深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clus ...

  8. 对加密方式(公钥私钥)的形象理解(以http和https为例)

    https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源. http使用TCP 三次握手建立连接,客户端 ...

  9. module_init宏解析

    在init.h中我们看到 #define module_init(x) __initcall(x); 还看到 #define __initcall(fn) device_initcall(fn) 还有 ...

  10. Hello Indigo

    Windows Communication Foundation (WCF),formerly code-named “Indigo,” is Microsoft’s platform for Ser ...