centos中编译openjdk8

注意,编译出来的jdk,在windows上无法使用,要在类unix(linux)系统中使用
此次使用的服务器是centos系统,12核,16G,所以编译起来相对较快(所以很慢的话,可能是服务器配置不高,可以等)。如果在虚拟机中编译的话,内存可以稍微给大一点。

  1. 先下载一个jdk1.8的源码

    Tags · openjdk/jdk · GitHub 选择tag为jdk-jdk8-b120的,下载源码

  2. 下载一个java7,因为编译的时候,需要编译java代码

    Java Platform, Standard Edition 7 Reference Implementations
    在这里插入图片描述在这里插入图片描述

  3. 把两个文件都放入linux服务器中

    unzip解压jdk-jdk8-b120.zip,tar -zxvf 解压jdk_ri_7u75-b13-linux-x64-18_dec_2014.tar.gz
    在这里插入图片描述

  4. 安装一些依赖

    yum install libXtst-devel libXt-devel libXrender-devel cups-devel alsa-lib-devel
    
  5. 检查配置

    sh ./configure --with-target-bits=64 --with-jvm-variants=server --with-debug-level=slowdebug --disable-zip-debug-info --with-boot-jdk=/usr/local/sy/java-se-7u75-ri
    

    这个sh ./configure实际上会去执行common/autoconf/configure脚本。想要查看更多配置,可以使用sh ./configure --help命令

    这条命令是用于配置Java开发工具包(JDK)的编译过程的。具体来说,命令的各个部分意味着:

    • sh ./configure:使用shell(sh)执行当前目录下的configure脚本。这个脚本是用来配置JDK编译环境的。

    • --with-target-bits=64:指定目标系统的位数为64位。这意味着编译出的JDK将运行在64位的操作系统上。

    • --with-jvm-variants=server:指定JVM的变体为“server”。JVM有多种变体,比如server和client,每种变体都有不同的性能和特性优化。

    • --with-debug-level=slowdebug:设置调试级别为“slowdebug”。这个级别提供了详细的调试信息,但可能会让JDK运行得更慢。

    • --disable-zip-debug-info:关闭调试信息文件的压缩。

    • --with-boot-jdk=/usr/local/sy/java-se-7u75-ri:指定引导JDK的路径。引导JDK是用于编译新JDK的现有JDK。在这个例子中,使用的是Java SE 7 Update 75版本。

    总的来说,这条命令配置了一个64位、优化为服务器使用的JDK编译环境,启用了详细的调试信息,同时指定了一个特定版本的引导JDK。

    如果缺少了相关依赖,可以按照提示安装
    在这里插入图片描述

    出现了这个就是检查通过

    在这里插入图片描述

    执行完成上面的命令,会在build目录中生成一个linux-x86_64-normal-server-slowdebug目录
    在这里插入图片描述

  6. 找到jdk-jdk8-b120/jdk/make/src/classes/build/tools/generatecurrencydata目录下的GenerateCurrencyData.java文件

    vim修改第284行代码,将10改成100(只要当前时间)

    :set nu
    :284
    

    在这里插入图片描述

    如果不修改的话编译会报错,因为他这个代码就是说,超过10年之后再编译,编译就会抛出一个异常,所以要给他改大,或者注释那个判断
    在这里插入图片描述

  7. 使用make CONF=linux-x86_64-normal-server-slowdebug编译,也可以使用make all,具体可以查看下载的源码中的README-builds.html页面,make all会编译更多文件,要慢一些

    在这里插入图片描述
    在这里插入图片描述
    显示这个就是编译完成了
    在这里插入图片描述
    然后cd到build/linux-x86_64-normal-server-slowdebug/jdk/bin目录,调用./java -version,可以发现已经是我们编译的那个jdk了
    在这里插入图片描述

  8. 测试是否可以使用,可以弄一个jar包上去,然后用这个java命令启动,测试发现程序正常启动,接口能正常访问
    在这里插入图片描述

  9. 想要清除编译生成的文件,可以调用make clean
    在这里插入图片描述
    在这里插入图片描述

使用make all编译截图,比make的多了一些东西
在这里插入图片描述

posted @ 2024-07-30 11:18  西瓜当冬瓜  阅读(3)  评论(0)    收藏  举报  来源