`
bruce008
  • 浏览: 172857 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Fedora 16 下编译 OpenJDK 7

阅读更多

自己的本本买来很长时间了 最近装了给国产山寨的micro Sata, 因此W520自己带的500G硬盘压力轻了不少。 i7的4核8线程跑跑win7 太对不起它了,  赶紧的虚拟机装个自己用的最多的Fedora( 现在的最新版本16)。

 

最近在看深入理解Java虚拟机,作者推荐下载OpenJdK来自己编译玩玩。主意不错,有了Linux 操作系统就不用在windows 下面还需要悲催的又要cgwin 又要visual studio 了。下面就是安装编译Openjdk的过程了:

 

1,   下载 打包好的 OpenJdk 源代码包:openjdk-7-fcs-src-b147-27_jun_2011.zip

 

2,   unzip  这个包。  我将它解压到  /root/openjdk  目录

 

3,    yum-builddep java-1.6.0-openjdk

     这是安装一个 jdk 6 在 /usr/lib/jvm/java-openjdk 这个位置。这个JDK 就是所谓的bootstrap jdk了. 因为在编译openjdk7 的时候java 部分的代码就是这个来编译的了。  当然c,c++部分是gcc 的干活。 


4, 根据zip包里面的 Readme-builds.html 提示设置 环境变量如下:

export LANG=C  

export ALT_BOOTDIR=/usr/lib/jvm/java-openjdk  

export ALLOW_DOWNLOADS=true  

export USE_PRECOMPILED_HEADER=true  

export SKIP_DEBUG_BUILD=false  

export SKIP_FASTDEBUG_BUILD=true  

export DEBUG_NAME=debug  

unset CLASSPATH  

unset JAVA_HOME          

 

5, 修改  /root/openjdk/hotspot/make/linux下的Makefile文件,注释掉以下内容,若不注释,会报错,然后exit 1退出编译. 这个原因是因为OpenJDK 在2011 大概6月份的时候就出来了, 而那个时候Fedora 16 还没有出来, 应该还没有在OpenJDK支持的版本里面。 下面这个错误其实也是在编译的时候碰到,然后试着注释掉

  1. check_os_version:  
  2. #ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)  
  3. #   $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;  
  4. #endif  

6, make sanity  

    如果出现 check sanity passed !

 

7,  make

 

需要说明的是  在gcc link hotspot 的时候 出现了一个错误

  ld can not find  libstdc++

 

大概是执行这个命令的时候  

 

   gcc -v -m64 -Xlinker -O1 -Wl,--hash-style=both  -Xlinker -z -Xlinker noexecstack -shared                                 \

               -Xlinker --version-script=mapfile_reorder -Xlinker -soname=libjvm.so  -static-libgcc -o libjvm.so ...\

  -Wl,-Bstatic \

  -lstdc++ -Wl,-Bdynamic -lm -ldl -lpthread;       \


...  表示的N多个 .o 文件。 我们可以看到 gcc 是要静态link    -lstdc++.   如果是静态的话 它应该是没有办法在 相关的lib下 找到 libstdc++.a   这个应该是fedora 16 在安装的时候 stdc++ 没有完全安装的缘故

试试  yum install libstdc++-static

然后 执行   find /usr -name libstdc++.a

可以找到 /usr/lib/gcc/x86_64-redhat-linux/4.6.2/libstdc++.a
             /usr/lib/gcc/x86_64-redhat-linux/4.6.2/32/libstdc++.a


继续 执行 make, 终于看到 succss 的画面出现。 到build/linux-amd64/bin 下面执行

 ./java -version
openjdk version "1.7.0-internal-debug"
OpenJDK Runtime Environment (build 1.7.0-internal-debug-root_2012_03_11_21_31-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17-jvmg, mixed mode)

呵呵成功了, 以后在linux 就用这个jdk 来玩了。  
分享到:
评论

相关推荐

    Fedora 8 安装MyEclipse6.0时出现问题的解决方法

    在Fedora 8上,可以使用`yum`命令来安装缺失的依赖,如`sudo yum install openjdk* xcb*`. 2. **手动安装libxcb**:如果通过`yum`找不到`libxcb`,可能需要从源代码编译安装。首先,从官方仓库下载libxcb的源代码,...

    Linux下安装java

    在Linux环境下安装Java是许多开发者和系统管理员的基本任务,无论是为了开发Java应用程序,还是为了运行基于Java技术的服务器。在本篇文章中,我们将深入探讨如何在Linux系统上安装Java,包括从源码编译和使用预编译...

    在CentOS系统上安装Java的openjdk的方法

    安装OpenJDK的过程主要依赖于`yum`包管理器,这是CentOS和Fedora等基于RedHat的Linux发行版的标准工具。以下是安装步骤: 1. 打开终端并以root用户身份登录,因为安装Java通常需要管理员权限。 2. 使用`yum search...

    Orcel JDK 11.0.15 安装包

    Oracle JDK 11.0.15 是Oracle公司发布的一个重要的Java开发工具包,它是Java Development Kit (JDK) 的一个版本,用于支持Java应用程序的开发、编译和运行。这个版本是针对Java 11的,Java 11是一个长期支持(LTS)...

    clumatra:使用 Clojure Sumatra Graal 进行实验,最终将 Clojure 编译到 GPGPU 上。

    对于 Fedora 20 / x86_64 - 有关更多详细信息/替代架构,请参阅 您需要确保安装了一些软件包 - 以 root 身份执行以下操作: yum install java-1.7.0-openjdk mercurial freetype-devel cups-devel gcc gcc-c++ p7...

    linux 安装 jdk Linux开发Java 程序设置

    本文将详细介绍如何在Linux环境下安装JDK,以及配置相应的环境变量,确保Java程序能够顺利运行。 首先,你需要选择适合你的Linux发行版的JDK版本。Oracle公司提供了适用于Linux的JDK,但现在也提供了OpenJDK作为...

    Dump-OreDictionary:[仅存档] 将整个 Forge OreDictionary 转储到 CSV 和 JSON 文件中

    欢迎来到转储矿石词典! 编译 安装 Java Java JDK 用于编译 Dump OreDictionary。 下载并安装 Java JDK。 。 向下滚动,接受Oracle Binary Code License ... Fedora: yum install java-1.7.0-openjdk 设置环境

    InGame-Mod-Configs:[仅存档] 伪造游戏内配置

    欢迎使用 InGame Mod 配置!... Gentoo: emerge dev-java/oracle-jdk-bin Archlinux: pacman -S jdk7-openjdk Ubuntu/Debian: apt-get install openjdk-7-jdk Fedora: yum install java-1.7.0-openjdk 设

    Extension-Fixer:[仅存档] 重命名无效的 mod 文件名 (.jar.zip => .jar)

    欢迎使用扩展修复程序! 编译 安装 Java Java JDK 用于编译 Extension Fixer。 下载并安装 Java JDK。 。 向下滚动,接受Oracle Binary Code License ... Fedora: yum install java-1.7.0-openjdk 设置环境。 W

    Config-Patcher

    欢迎使用配置补丁程序! 编译 安装 Java Java JDK用于编译Config Patcher。 下载并安装 Java JDK。 。 向下滚动,接受Oracle Binary Code License ... Fedora: yum install java-1.7.0-openjdk 设置环境。 Wind

    Danger-Zone:可视化各种实体生成数据

    Gentoo: emerge dev-java/oracle-jdk-bin Archlinux: pacman -S jdk7-openjdk Ubuntu/Debian: apt-get install openjdk-7-jdk Fedora: yum install java-1.7.0-openjdk 设置环境。 Windows:为 JDK 设

    Arrow-Flight-Path:为 ModJam 3 (http

    欢迎来到Arrow Flight Path! 编译 安装 Java Java JDK用于编译Arrow Flight Path。 下载并安装 Java JDK。... Ubuntu/Debian: apt-get install openjdk-7-jdk Fedora: yum install java-1.7.0-openj

    Profiles:一个简单的客户端模块,允许您即时切换设置

    欢迎来到简介! - 对于那些想要最新的未发布功能的人-... Gentoo: emerge dev-java/oracle-jdk-bin Archlinux: pacman -S jdk7-openjdk Ubuntu/Debian: apt-get install openjdk-7-jdk Fedora: yum install java-1.7.0

    jdk8各平台安装包.zip

    2. **RPM安装包**:RPM (Red Hat Package Manager) 是Linux发行版如Fedora、CentOS等常用的软件包管理格式。对于这些系统,您可以使用`rpm -ivh jdk-8.rpm`命令来安装JDK,其中`-i`代表安装,`-v`是详细模式,`-h`是...

    hawq compiling guide

    wget https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm ``` 如果你的系统已经安装了最新的EPEL仓库,则无需再次安装。可以使用以下命令...

    7-使用yum安装jdk.doc

    在Linux环境中,Java开发工具包(JDK)是必不可少的工具之一,它为开发者提供了编译、运行Java应用程序的能力。对于基于Red Hat的Linux发行版(如CentOS、Fedora等),通过`yum`(Yellowdog Updater Modified)包...

    Linux JDK7 64位(rmp)

    8. **维护与更新**: 虽然JDK7已经停止了官方支持,但开源社区如OpenJDK仍在维护其分支。开发者应考虑升级到更安全、功能更丰富的JDK版本,如JDK8、JDK11或更高版本,以获取持续的安全更新和支持。 总之,Linux JDK7...

    Hadoop的配置及运行WordCount.docx

    - 卸载Fedora自带的OpenJDK,因为我们将安装Oracle的JDK。使用`sudo dnf remove java-openjdk`命令来卸载。 - 安装Oracle JDK,可以从Oracle官网下载适用于Linux的JDK包,然后通过`tar`命令解压并配置环境变量。 ...

    jdk11各平台安装包.zip

    此外,根据开发需求,可能还需要配置IDE(如IntelliJ IDEA或Eclipse)的Java版本,以及构建工具(如Maven或Gradle)的Java编译目标版本。 总的来说,无论你是Windows还是Linux用户,这个压缩包都提供了便捷的JDK11...

    linux_jdk安装包.rar

    3. **使用 AdoptOpenJDK 或 Azul Zulu**:这两个项目提供预编译的OpenJDK版本,可以直接下载对应Linux系统的tar.gz文件,解压后进行安装,步骤与手动安装类似。 安装完成后,可以通过`java -version`和`javac -...

Global site tag (gtag.js) - Google Analytics