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


    今天倒腾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 8JDK 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)
    然后就心情享受吧!!!
  • 相关阅读:
    深度学习的优化算法
    基于双向的CNN的细粒度物体识别论文翻译
    LSTM公式推导
    结巴分词python脚本
    eval() python 中的
    C++编译原理
    extern,以及在linux头文件中的应用
    iostream源码
    LINUX命令
    apt-get
  • 原文地址:https://www.cnblogs.com/gslyyq/p/4914479.html
Copyright © 2020-2023  润新知