运行编译openjdk12-33

编译环境

ubuntu20

Ubuntu里用户可以自行选择安装GCC或CLang来进行编译,但必须确保最低的版本为GCC 4.8或者CLang 3.2以上,官方推荐使用GCC 7.8或者CLang 9.1来完成编译。

源码

https://github.com/openjdk/jdk/tree/jdk-12%2B33

安装gcc

sudo apt-get install build-essential

在编译过程中需要依赖FreeType、CUPS等若干第三方库

sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
#libxll-dev这个找不到  不影响就先不管
sudo apt-get install libxll-dev 
sudo apt-get install libxext-dev 
sudo apt-get install libxrender-dev 
sudo apt-get install libxrandr-dev 
sudo apt-get install libxtst-dev 
sudo apt-get install libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf

安装openjdk11

sudo apt-get install openjdk-11-jdk

查看参数

#运行查看参数
bash configure --help

报错了

执行下列代码

sudo apt-get install autoconf

 然后继续执行bash configure --help 就可以看到参数了

参数详解

参数值默认值可选值参数含义
--with-debug-level=<level>releaserelease、fastdebug、slowde-bug设置编译的级别,越往后进行的优化措施就越少,带的调试信息就越多,还有一些虚拟机调试参数必须在特定模式下才可以使用
·--enable-debug等效于--with-debug-level=fastdebug
--with-native-debug-symbols=<method>none、internal、external、zipped确定调试符号信息的编译方式
--with-version-string=<string>设置编译JDK的版本号,譬如java-version的输出就会显示该信息;这个参数还有--with-version- <part>=<value>的形式,其中part可以是pre、opt、build、major、minor、security、patch之一,用于设置版本号的某一个部分。
--with-jvm-variants=<variant>[,<variant>...]server、client、minimal、core、zero、custom编译特定模式(Variants)的HotSpot虚拟机,可以多个模式并存
--with-jvm-features=<feature>[,<feature>...]针对--with-jvm-variants=custom时的自定义虚拟机特性列表(Features),可以多个特性并存,由于可选值较多,请参见help命令输出
--with-target-bits=<bits>指明要编译32位还是64位的Java虚拟机,在64位机器上也可以通过交叉编译生成32位的虚拟机
--with-<lib>=<path>boot-jd、freetype、cups、x、alsa、libffi、jtreg、libjpeg、giflib、libpng、lcms、zlib用于指明依赖包的具体路径,通常使用在安装了多个不同版本的Bootstrap JDK和依赖包的情况
·--with-extra-<flagtype>=<flags>其中flagtype可选值为cflags、cxxflags、ldflags,分别代表C、C++和Java代码的参数用于设定C、C++和Java代码编译时的额外编译器参数
--with-conf-name=<name>指定编译配置名称,OpenJDK支持使用不同的配置进行编译,默认会根据编译的操作系统、指令集架构、调试级别自动生成一个配置名称,譬如“linux-x86_64-server-release”,如果在这些信息都相同的情况下保存不同的编译参数配置,就需要使用这个参数来自定义配置名称

参数测试

 configure命令承担了依赖项检查、参数配置和构建输出目录结构等多项职责,如果编译过程中需要的工具链或者依赖项有缺失,
 命令执行后将会得到明确的提示,并且给出该依赖的安装命令

bash configure --enable-debug --with-jvm-variants=server

会报错

apt-get install zip

然后会提示如下

按照错误提示的安装即可

sudo apt-get install libfontconfig1-dev

 然后继续执行bash命令

如果一切顺利的话,就会收到配置成功的提示,并且输出调试级别,Java虚拟机的模式、特性,使用的编译器版本等配置摘要信息,如下所示:

编译

#清理目录
make clean
make dist-clean#编译
make product-images#producet-images可替换为下列的
hotspot:只编译HotSpot虚拟机
hotspot-<variant>:只编译特定模式的HotSpot虚拟机
docs-image:产生JDK的文档镜像
test-image:产生JDK的测试镜像
all-images:相当于连续调用product、docs、test三个编译目标
bootcycle-images:编译两次JDK,其中第二次使用第一次的编译结果作为Bootstrap JDK
clean:清理make命令产生的临时文件
dist-clean:清理make和configure命令产生的临时文件

 

紧接着

build/配置名称/jdk   目录下

就可以看到完整的编译结果了,把它复制到JAVA_HOME目录,就可以作为一个完整的JDK来使用

运行

---------------------------持续更新20240605-------------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能的未来发展前景:机遇与挑战

人工智能&#xff08;AI&#xff09;的发展在过去的几十年里取得了突飞猛进的成就&#xff0c;已经成为推动全球科技创新的关键动力之一。随着技术的不断进步和应用的日益广泛&#xff0c;AI的未来发展前景显得更加广阔&#xff0c;同时也面临一系列新的机遇和挑战。 技术革新…

使用neural_network_console训练模型并导出.nnb文件应用于索尼spresense

一.创建数据集 首先你需要一个csv标记的数据集 然后我们使用neural_network_console将数据集进行处理 dataset->create dataset->image 用户可以通过该界面选择源目录&#xff08;Source Dir&#xff09;&#xff0c;输出目录&#xff08;Output Dir&#xff09;&…

哈希表、HashMap\Map-1657. 确定两个字符串是否接近

题目链接及描述 1657. 确定两个字符串是否接近 - 力扣&#xff08;LeetCode&#xff09; 题目分析 今日看到这道题目&#xff0c;乍一看觉得非常熟悉&#xff0c;对于将一个字符串转换为另一个字符串的题目之前做过一些。分析题目&#xff0c;题目中所述就是两种操作&#xff…

ubuntu蓝牙连接问题

ubuntu蓝牙连接问题 ubuntu蓝牙连接问题1、安装驱动2、优化蓝牙配置文件3、解决 Failed to connect: org.bluez.Error.Failed ubuntu蓝牙连接问题 之前我发现电脑有蓝牙图标&#xff0c;且能打开关闭&#xff0c;就以为蓝牙默认已经配置好了&#xff0c;直到有一天我尝试连接我…

嵌入式软件跳槽求指导?

嵌入式软件行业的跳槽确实需要一些特定的策略和技巧。我这里有一套嵌入式入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习嵌入式&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 因为这个…

【设计模式】装饰器模式(结构型)⭐⭐

文章目录 1.概念1.1 什么是装饰器模式1.2 优点与缺点 2.实现方式3. Java 哪些地方用到了装饰器模式4. Spring 哪些地方用到了装饰器模式 1.概念 1.1 什么是装饰器模式 它允许用户在不修改现有对象的代码的情况下向对象添加新的功能&#xff1b;这种模式是通过创建一个包含该对…

前端面试题日常练-day53 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 1. 在PHP中&#xff0c;以下哪个函数可以用于从一个数组的末尾删除一个元素并返回被删除的元素&#xff1f; a) array_pop() b) array_push() c) array_shift() d) array_unshift() 2. 在PHP中&…

列存在 OceanBase 数据库架构中的应用与演进

OceanBase 4.3 版本上线了列存功能&#xff0c;以满足实时分析的需求。 本文作为《特性解读&#xff1a;列存技术》的后续&#xff0c;将详细阐述列存技术在OceanBase数据库架构中的应用、发展历程&#xff0c;以及未来的趋势。 一、前言 1970 年&#xff0c;关系模型之父 Co…

LeakSearch:针对网络公开凭证的安全扫描与检测工具

关于LeakSearch 在红队演戏过程中&#xff0c;往往需要获取到针对目标域的访问权限。在这个过程中&#xff0c;很多红队人员会选择使用暴露在互联网上的代理服务器来实现目标域的访问&#xff0c;那么此时就需要在互联网上收集公开暴露的凭证信息。 对于蓝队来说&#xff0c;…

Playwright+Python+Pytest:基础方法二次封装简化及链式调用

引言 随着Web应用的日益复杂化&#xff0c;自动化测试成为了确保软件质量的关键环节。Playwright 是一个强大的自动化库&#xff0c;它支持在 Chromium、Firefox 和 WebKit 中运行自动化脚本。本文将介绍如何使用 Playwright 的 Python 同步 API 来简化点击和填充操作&#xf…

阿里云邮件推送配置教程:API配置的步骤?

阿里云邮件推送服务如何使用&#xff1f;如何配置邮件推送服务&#xff1f; 阿里云提供了强大的邮件推送服务&#xff0c;帮助企业高效地发送邮件通知、验证码、营销活动等。Aok将详细介绍阿里云邮件推送的配置教程&#xff0c;以及API配置的步骤&#xff0c;同时简要提及AokS…

数据流图要点和难点实际应用

数据流图(Data Flow Diagram,DFD)是一种图形化表示信息系统中数据流动和处理的方式。它主要用于描述系统如何接收输入数据,经过一系列的处理步骤,然后产生输出数据。数据流图在系统设计阶段特别有用,因为它可以帮助开发人员、业务分析师和其他利益相关者更好地理解系统的…

Python字符串数据类型之字符串

四、Python数据类型 4.1、Python内置数据类型 整型&#xff1a;int浮点型&#xff1a;float布尔类型&#xff1a;bool字符串&#xff1a;str二进制类型&#xff1a;bytes、bytearray复数&#xff1a;complex列表&#xff1a;list元组&#xff1a;tuple字典&#xff1a;dict a…

C#WPF控件Textbox绑定浮点型数据限制小数位方法

本文讲解C#WPF控件Textbox绑定浮点型数据限制小数位方法。 XAML中,使用StringFormat来格式化TextBox的文本 <Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m…

【使用 uiautomator2 脚本进行波点音乐app自动化操作的教程】

本教程将指导您使用 uiautomator2 库编写脚本&#xff0c;实现自动化操作。如果您需要在设备断开连接或出现异常时重新连接设备并继续执行任务&#xff0c;这里有一份详细的代码示例和使用说明。 环境准备 安装 Python&#xff1a; 确保您的系统上安装了 Python&#xff08;推…

[数据集][目标检测]盲道检测数据集VOC+YOLO格式2173张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2173 标注数量(xml文件个数)&#xff1a;2173 标注数量(txt文件个数)&#xff1a;2173 标注…

基于R语言BIOMOD2 及机器学习方法的物种分布模拟与案例分析实践技术

BIOMOD2是一个R软件包&#xff0c;用于构建和评估物种分布模型&#xff08;SDMs&#xff09;。它集成了多种统计和机器学习方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允许用户预测和分析物种在不同环境条件下的地理分布。通过这种方式&#xff0c;BIOMOD帮助研究者评估气候…

常用接口测试及接口抓包常用的测试工具

一、常用抓包工具 01、F12 Web端的话&#xff0c;google浏览器直接F12开发者模式 点击network进行抓包分析。 02、Fiddler抓包工具 客户端和服务端的http代理&#xff0c;客户端所有的请求都要先经过Fiddler&#xff0c;到响应的服务端&#xff0c;然后端返回的所有数据也都…

pytorch数学操作

文章目录 1.torch.bitwise_not()2.torch.bitwise_and()3.torch.ceil()3.torch.clamp()4.torch.torch.floor() 1.torch.bitwise_not() 在 PyTorch 中&#xff0c;torch.bitwise_not() 是一个函数&#xff0c;用于执行逐元素的位非&#xff08;bitwise NOT&#xff09;操作。 t…

如何组织基于Sqlalchemy的项目

在使用 SQLAlchemy 构建项目时&#xff0c;可以遵循一些常用的组织结构和最佳实践&#xff0c;以确保项目清晰、易于维护。下面就是我在构建项目时遇到的一些问题&#xff0c;并做了详细的记录&#xff0c;为了方便大家学习少走一些弯路。 1、问题背景 在基于Sqlalchemy的项目…