- Centos环境 原因windows上编译和调试jdk坑比较多,建议使用linux
我是通过在windows安装Oraclevirtual box虚拟机,其信息如下
2.初始jdk安装 原因是作为引导jdk
详情见openjdk源码包中的README-builds.html文档,如下图红框,构建jdk要求使用jdk7,update7或者更新的版本,jdk8开发者不应该使用jdk8作为引导jdk,以便确保jdk8的依赖不被引入基于jdk构建的系统
3.Jdk7下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Openjdk下载地址:
https://download.java.net/openjdk/jdk8/promoted/b132/openjdk-8-src-b132-03_mar_2014.zip
http://hg.openjdk.java.net/jdk8u/
4.Vs code下载&安装
https://vscode.cdn.azure.cn/stable/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/code-1.52.1-1608137084.el7.x86_64.rpm
下载vscode-cpptools
由于vs是1.52.1 要选择对应版本的vscode-cpptools,下面页面里面有requirement
https://github.com/Microsoft/vscode-cpptools/releases?after=1.4.0-insiders
下载vscode-lldb
https://github.com/vadimcn/vscode-lldb/releases/download/v1.6.5/codelldb-x86_64-linux.vsix
不建议下载最新版本
5.其他依赖组件
yum groupinstall “DevelopmentTools”
yum install libXtst-devel libXt-devellibXrender-devel
yum install cups-devel
yum install freetype-devel
yum install alsa-lib-devel
还可以再安装ccache,能加快编译速度,特别是需要多次编译时;
这些在configure时,都有提示,缺什么就安装什么;
6.Java类准备
准备 Test.java ,并利用javac生成 Test.class
public class Test{
public static void main(String[] args){
System.out.println("hello world !");
int[] arr = new int[Integer.MAX_VALUE];
for (int i = 0; i < 100000; i++) {
arr[i] = i;
}
System.gc();
}``}
7.编译参数需知
–with-target-bits=arg 选择32还是64位
–with-debug-level=level 选择debug level,可选项为fastdebug、slowdebug
–with-boot-jdk=path 设置引导jdk路径
其他更多参数详情见README-builds.html文件(尽量参考官方说明,网上文章人云亦云)
编译OpenJDK8
==========
–with-boot-jdk:指定引导JDK所在目录,以防其他安装的JDK影响(本机上以前安装了JDK8,并配置了JAVA_HOME指向JDK8);
–with-target-bits:指定编译64位系统的JDK;
为可以进行源码调试,再指定下面三个参数:
–with-debug-level=slowdebug:指定可以生成最多的调试信息;
–enable-debug-symbolsZIP_DEBUGINFO_FILES=0:生成调试的符号信息,并且不压缩;
命令如下:
cd openjdk
bash ./configure --with-target-bits=64--with-boot-jdk=/usr/java/jdk1.8.0_181-amd64 --with-debug-level=slowdebug--enable-debug-symbols ZIP_DEBUGINFO_FILES=0
make all ZIP_DEBUGINFO_FILES=0
若编译失败,根据失败信息,缺什么就安装什么
若编译成功,会显示如下信息:
jdk编译完成:
----- Build times -------
Start 2021-06-07 19:57:34
End 2021-06-07 20:01:43
00:00:00 corba
00:00:00 demos
00:03:16 docs
00:00:00 hotspot
00:00:50 images
00:00:00 jaxp
00:00:00 jaxws
00:00:01 jdk
00:00:00 langtools
00:00:02 nashorn
00:04:09 TOTAL
-------------------------
Finished building OpenJDK for target ‘all’
编译常见问题
java.lang.VerifyError: classjdk.nashorn.internal.objects.ScriptFunctionImpl overrides final methodsetPrototype.
vimnashorn/make/BuildNashorn.gmk
第80行原代码:
-cp" ( N A S H O R N _ O U T P U T D I R ) / n a s g e n _ c l a s s e s (NASHORN\_OUTPUTDIR)/nasgen\_classes (NASHORN_OUTPUTDIR)/nasgen_classes(PATH_SEP)$(NASHORN_OUTPUTDIR)/nashorn_classes"\
修改为
-Xbootclasspath/p:“ ( N A S H O R N _ O U T P U T D I R ) / n a s g e n _ c l a s s e s (NASHORN\_OUTPUTDIR)/nasgen\_classes (NASHORN_OUTPUTDIR)/nasgen_classes(PATH_SEP)$(NASHORN_OUTPUTDIR)/nashorn_classes”\
2. 缺xxx组件
Yum直接安装即可,若无法下载就修改下yum源
安装Visual Studio Code
====================
sudo yum installcode-1.52.1-1608137084.el7.x86_64.rpm
安装完后在 输入 whereis code 得到安装目录
在桌面输入,即可启动vs(若需要建立桌面快捷图标可参考其他教程)
运行调试OpenJDK8项目
==============
1.打开vscode,选择所在jdk目录
以下图的jdk目录为例,vs选择/opt/openjdk_compile/openjdk 即可
2.插件安装
先安装如下图红框的插件,直接在上搜索框安装即可
安装vscode-lldb和vscode-cpptools
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/a3b32ee6c4ad95e058f8fcd7247f99dd.jpeg)
线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识
一线互联网P7面试集锦+各种大厂面试集锦
学习笔记以及面试真题解析
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
2faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />
线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识
[外链图片转存中…(img-YuO24rJ5-1713291386185)]
一线互联网P7面试集锦+各种大厂面试集锦
[外链图片转存中…(img-MApNf1qK-1713291386186)]
学习笔记以及面试真题解析
[外链图片转存中…(img-bmfPS7PV-1713291386186)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!