openJDK的编译-linux

了解JVM(一)Linux下编译openJDK7 https://blog.csdn.net/qq_26264237/article/details/100114385 阅读详情

(后续会更新其他系统的更多jdk版本的,目前没时间,倒腾这种东西有点浪费时间和没有必要)

deepin篇

软件环境:jdk7 && gcc4.8 还有openJdk8 的源码

总的评价:
难度在于如果你编译openJDK8,以来的GCC4.8的安装是有些难度的,我是换了早期的软件仓库源才安装了gcc4的,其它的很顺利基本没有遇到问题

1.安装GCC

好了,换了版本和源

2.更换文件/etc/apt/source.list
#deb https://community-packages.deepin.com/deepin/ apricot main contrib non-free
#deb [by-hash=force] http://packages.deepin.com/deepin/ stable main contrib non-free
deb [by-hash=force] http://packages.deepin.com/deepin/ unstable main contrib non-free#deb-src https://community-packages.deepin.com/deepin/ apricot main contrib non-free
安装gcc和g++
sudo apt install g++
sudo apt install g++-8
   84  sudo apt install g++
   86  g++ --version
   61  sudo apt install gcc-4.8
   62  sudo apt install gcc-4.9
   69  sudo apt install g++-4.9
   70  sudo apt install g++-4.8
   71  sudo cat /etc/apt/sources.list
   72  ls /usr/bin/gcc*
   73  sudo gedit /etc/apt/sources.list
   74  sudo apt update
   75  sudo update-alternatives --config gcc
   77  sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100
   88  sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 100
   89  g++ --version

编译环节

安装jdk7配置环境(自己百度)

  1  sudo apt install gcc
    3  sudo mv jdk7/ /opt/
    4  cp /etc/profile /etc/profile.bak
    5  sudo cp /etc/profile /etc/profile.bak
    6  ls
    7  gedit /etc/profile
    8  sudo deepin-editor /etc/profile
    9  sudo source /etc/profile
   10  source /etc/profile
   11  java -version
   12  java
   13  javac -v
   14  javac -version

configure and make


  cd openjdk/
  sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev 
   sudo apt-get install libcups2-dev
 sudo apt-get install libfreetype6-dev
   sudo apt-get install libasound2-dev
    bash configure --enable-debug --with-jvm-variants=server --with-target-bits=64 --with-conf-name=openjdk8
    make all ZIP_debuginfo_files=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
//编译报错
 gedit hotspot/make/linux/makefiles/gcc.make 

参考
https://www.cnblogs.com/bosslv/p/11316836.html
https://segmentfault.com/a/1190000040821702?utm_source=sf-similar-article
https://blog.csdn.net/boling_cavalry/article/details/70557537?utm_source=blogxgwz6
https://blog.csdn.net/desiyonan/article/details/80802066
https://www.cnblogs.com/mazhimazhi/p/13983301.html
https://www.cnblogs.com/iou123lg/p/9696039.html

Ubuntu

 sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libasound2-dev libfreetype6-dev

openJdk8

如果编译openJdk8需要gcc4.9左右的版本,所以你需要修改你的ubuntu源

bash ./configure --with-target-bits=64 --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0 --with-jvm-variants=server
 make all ZIP_DEBUGINFO_FILES=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

sudo vim /etc/apt/sources.list后添加

deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

更换gcc的版本和上边deepin一样

openJDK11

这里我编译的是openjdk11,因为openjdk8 要gcc4.9,我觉得下载修改很烦。高版本的openjdk报错会很少,第一次编译建议还是编译openjdk11,比8的问题少多了

安装jdk,并配置环境
/etc/profile

export JAVA_HOME=/opt/jdk10
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib/:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin

把jdk10的lib目录copy到新建一个jre文件夹里边。可以适当把dt.jar, tool.jar也可以放到jre/lib/目录下

进入源码目录

bash configure --enable-debug --with-jvm-variants=server --with-target-bits=64 --disable-warnings-as-errors --with-boot-jdk=/opt/jdk10 --with-native-debug-symbols=internal --with-conf-name=openjdk11
make all ZIP_DEBUGINFO_FILES=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

可能遇到的报错

Warning: ××× ‘int readdir_r(DIR*, dirent*, dirent**)’
在这里插入图片描述

还有一个检查系统版本的问题

Fedora

Centos

linux编译openjdk8 最近在看《深入理解java虚拟机》,第一章主要讲java历史,有点意思的是编译openjdk,想自己试着搞搞,但是书上编译的是7,而且要配置一堆的配置文件,就上网查查,openjdk8貌似不用配置这么多,就试着编译8。纪录一下操作过程。 ** 编译 ** 系统:centOs 7.5 64位(刚开始用的腾讯云1核1g,编译的时候说内存不够,好在腾讯云5天免费退,改成1核2g) 1、下载openjdk... 阅读详情

相关推荐

在Mac OSX Yosemite上编译OpenJDK for Linux

在本文中,我们将讨论如何在Mac OSX Yosemite操作系统上编译适用于Linux的OpenJDK。尽管Mac OSX和Linux是不同的操作系统,但我们可以通过一些修改和配置来让OpenJDK在Mac OSX Yosemite上成功编译。请记住,由于Mac OSX和Linux之间存在一些差异,因此在将编译的OpenJDK部署到Linux环境中时可能需要进行一些调整。在开始编译之前,我们需要确保我们的系统上安装了所需的软件和工具。在开始编译之前,我们需要配置一些环境变量。一旦编译完成,您将在。

ZvjLibrary的博客 123

编译openjdk

编译openjdk 1. 下载openjdk源码 openjdk的官网是OpenJDK (java.net) 在网站左侧就能看到它的源码位置的链接 从图上可以看到,它的源码在两个位置有托管,Mercurial、GitHub这两个网站都有。我们点击GitHub,进去到它GitHub的位置。 上图第一个就是openjdk的仓库地址了 。 ​ 选择HTTPS,复制地址。 下一步,登录码云(没账号的可以先创建一个),在边上有个+的图标,点开就可以看到二级菜单有个从GitHub/GitLab导入仓库。 上面

wbo 7706

Cadence 16.6与17.4双版本共存避坑指南:从安装顺序到环境变量配置

本文是一份详细的Cadence 16.6与17.4双版本共存实战指南。针对硬件工程师和PCB设计者同时处理新旧项目的需求,文章深入剖析了版本冲突根源,并提供了从安装顺序、环境隔离到故障排查的完整解决方案。核心在于通过环境变量精细化管理与脚本控制,实现两个版本的稳定共存与无缝切换,有效解决了文件关联混乱、交互布局失效等常见问题。

html8的博客 953

编译openjdk详解

前言: 一直想看看jvm的庐山真面目。就自己编译了一遍openjdk,期间遇到很多错误,参考了很多篇博文,一把辛酸泪。我几乎把jdk6以上的jdk都下了一遍。用jdk6编jdk7,jdk7编jdk8..........无奈都失败了。主要是刚开始,对Makefile编译不熟,遇到bug就乱了阵脚。经过几次失败后,又学了一些相关编译方面的知识后,终于看懂了编译的报错信息,并且做相应...

远行的博客 3797

图像配准方法之灰度信息法

这系列文章是5年前的,也是从自己的QQ(632846506)日志中移过来的。https://user.qzone.qq.com/632846506/infocenter。      图像配准的方法主要有三种:基于灰度信息方法;基于空间变换域方法;基于图像特征的方法。 一、灰度信息法。     灰度信息法直接利用两幅图像之间灰度度量的相似性,以图像内部的信息为依据,采用搜索方法寻找相似度最大或

月秀明竹的专栏 1万+

高德地图轨迹回放,消息框内展示车辆速度且随车辆移动-升级支持调整速度、回放进度

使用高德地图回放车辆GPS轨迹,并添加速度和回放进度条,并支持调整,效果如下: 新增的功能: 在基础版本,有如下升级 速度条:可以拖动以调整车辆回放速度,且从当前位置继续回放 进度条:进度条表示车辆已回放的百分比,且拖动进度条车辆定位到相应的位置并继续回放 ###思路分析 高德和marker回放相关的API //主要靠他回放 moveAlong(path:Array,speed:Number,f:Function,circlable:Boolean) //点移动到另一个位置,移动进度条车辆跟随移动

博客 1万+

JDK11之后版本,如何生成JRE

JRE生成

wshkeke1的博客 3845

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 86

linux下配置jdk11以及生成jre,jdk9以上自动生成jre解决

jdk9以上之后不会自动生成jre,需要手动进行生成jre. windows下执行: bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre linux下执行: bin\jlink --module-path jmods --add-modules java.desktop --output jre...

y_qc_lookup的博客 9323

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(1)

海思SS928,SS926以及Hi3519dv500,hi3516dv500下的yolov7模型部署推理系列

Littro Innovations 3074

ESP32-C3模组上跑通HTTPS分次传输文件(1)

ESP32-C3模组上跑通HTTPS分次传输文件(1)

phmatthaus的专栏 752

linux下生成jre

就是jre不自带了,需要自己生成。生成步骤: 打开命令行之后进入安装目录双击安装路径 运行命令bin/jlink --module-path jmods --add-modules java.desktop --output jre 在jdk安装目录下就可以看到生成了jre ...

POJOX的博客 444

【GlobalMapper精品教程】006:Excel表格(.xls)或文本(.txt .csv)坐标文件生成矢量点

原始的坐标数据如下图所示,其中坐标为Lat经度,LNG纬度,均为十进制度的形式,一般软件都支持十进制度的格式,如果不支持,你可以尝试使用度分秒的形式,图中的DDMMSS-LAT为纬度,DDMMSS-LNG为经度。打开globalmapper软件,点击【打开数据文件】,选择坐标数据文件(案例中的数据位配套实验数据包中的data006.rar)气象台站分布点坐标.xls。选择坐标系:本案例数据采用的是经纬度,因此选择Geographic(Latitude/Longitude),基准选择WGS84,点击确定。

智慧空间实验室 2561

在Linux下编译OpenJdk并调试Hotspot

背景 对于大多数Java程序员来说,JVM就是一个黑盒子,我们一般不必关心它内部是怎么运作的。但是万一碰到JVM bug导致的Crash呢,又或者只是因为好奇想了解JVM的内部世界,那么就需要编译和调试JVM。 概念 1. JVM(Java Virtual Machine)        翻译过来就是Java虚拟机,所谓虚拟机是相对传统的计算机而言的。

7007

再不入坑就晚了,深度神经网络概念大整理,最简单的神经网络是什么样子?

再不入坑就晚了,深度神经网络概念大整理,最简单的神经网络是什么样子?

我是香菜 3万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

linux 编译openjdk失败记

最近开始学习jvm虚拟机的知识,第一章就是自己编译一个openjdk,结果编译时遇到一个问题,尝试了好久都没能解决,心累的不想再试了。所以打算先继续往下学习,等以后如果有毅力再来试一试,另写下这篇博客谨记录自己编译openjdk失败了的过程和遇到的错误。 一、安装linux系统 首先我是在windows平台上操作的,所以得先安装虚拟机软件VMware,安装教程百度。linux镜像我来...

LZ的博客 1415

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Linux 下编译自己的 OpenJDK7 包括JVM和JDK API

1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包 2. 简要介绍下OpenJDK7中的目录 hotspot: 放有OpenJDK Hotspot Virtual Machine 的源代码和make文件 langtools: 放有OpenJDK 的javac 等工具的源代码和make文件 co

KindAzrael的专栏 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

openjdk6在linux上的编译手顺

openjdk6在linux上的编译手顺 我在xubuntu上编译openjdk6是按照http://rednaxelafx.iteye.com/blog/875957撒加这篇文章编译的,可是仔细琢磨才知道这篇文章是编译sun以jrl许可证发放出来的jdk源码的,不过大体思路差不多,有少许差别(就是这少许区别搞了很久。。。)。 环境:在virtual4.2.4装上xubuntu10.04.2

Nature_cworkplace的专栏 2653

OpenJDK21源码编译指南(Linux环境)

-with-num-cores=12 \ # 根据CPU核心数调整。--with-memory-size=20480 \ # 内存分配(单位MB)--with-boot-jdk=/opt/jdk-20 \ # 指向JDK20路径。--disable-warnings-as-errors # 忽略警告错误。--with-debug-level=slowdebug \ # 调试模式。查找对应开发包并安装。

u014200244的专栏 1227

在linux下编译openjdk7

最近刚开始看《深入理解JAVA虚拟机》这本书。第一章的实践是自己手动编译openjdk7,但书上的步骤都是基于windows的,于是在网上搜了一下linux下编译openjdk的资料: [url]http://blog.csdn.net/kindazrael/article/details/7266314[/url] [url]http://guoh.org/lifelog/2011/05/c...

lc87624的专栏 572

linux ubuntu编译 openjdk11

【代码】linux ubuntu编译 openjdk11。

fukaiqiang 637

Linux 下编译OpenJDK

一.为什么编译OpenJDK? 因为这样可以自己对JDK做一些操作,比如加注释什么的 或者对JVM进行调试 二.如何编译 1.配置环境 Ubuntu 版本 16.06 因为OpenJDK有些代码是有些基于C++,大部分是Java写的,所以需要一个JDK去编译这 些由Java所写的地方,这JDK官方称为Bootstrap JDK,我们要编译OpenJDK8 那就要使用JDK7为Bootstrap JDK 安装Bootstrap JDK 首先看你们的系统有无JDK7,看是不是JDK7,如果不是直接删除装J

qq_40495860的博客 1万+

LINUX编译OpenJDK,也可以指定freetype

在LINUX上编译OpenJDK,默认参数都是空。比如freetype就不用指定。这是为什么?LINUX都自带freetype。 实际上,也可以指定freetype,具体做法跟WINDOWS一样。以8为例: ./configure --with-freetype=../freetype-2.10.1 这个目录要求是: 有include目录,其中有头文件。 有lib目录,其中有libfr...

柳鲲鹏 1014

Linux 编译OpenJDK

CentOS 6.5 i386 平台编译 OpenJDK8

亚信大数据性能优化小组 2264

在 Linux (aarch64) 编译 OpenJDK 8

手动编译 OpenJDK

不搞数学的汤老师 1456

arm cef3 linux 编译_全网首发:LINUX上编译ARM(AARCH)版本的OpenJDK8

  龙芯机器编译OpenJDK8,有现成的指导文章,有已经准备好的代码源。  而ARM版本的OpenJDK,可以确定有很多人和公司编译过了,结果在网上搜索时,找不到任何相关的资料。可是咱工作需要,不解决也不行。于是突破了各种困难,成功编译。而且吾很肯定的讲:  这是全网首发。  肯定有其他朋友需要。所以这里详细记录下来。  机器为:飞腾ARM,麒麟LINUX。更新源:http://archive....

weixin_36227730的博客 441
上一篇: CGLIB和JDK代理生成新的字节码后调用的不同
下一篇: Go入门常见问题
jjdexiao521
博客等级 码龄10年 33粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值