文档章节

Ubuntu 16.04系统下 对OpenJDK编译好的Hotspot 进行调试

桃核儿
 桃核儿
发布于 2017/08/20 20:45
字数 686
阅读 261
收藏 0

经过一番挣扎终于成功讲Hotspot导入NetBeans中进行调试。

一.安装NetBeans(所谓工欲善其事,必先利其器  下载链接

        下载的时候有些注意点

  • NetBeans的每个版本中按语言的支持程度分为好几种,这里我们需要的支持c/c++就可以了,理由很简单,因为Hotspot编译好以后是c++或者c文件。
  • 不同版本,我指的是NetBeans8.2、8.1、8.0、7.4等版本对JDK版本是有要求的,所以最好下载一个最新版本的jdk(JDK不会装可以参考我上一篇博文),理由是在安装NetBeans的时候会要求你有jdk的支持,软件本身运行需要jdk支持。
  • 安装的时候,由于是Linux版的,下载下来的是XXX.sh文件,ll一下看这个文件的权限发现不能执行,所以先在终端执行chmod +x XXX.sh赋予此文件执行的权限,然后./XXX.sh即可,卸载也是同理。还有疑问的可以点击这里

二.导入Hotspot

        同样有些注意点

  • 看我选项
  •  
  • 这里要选择定制
  •  
  • 找到make目录下的Makefile文件,NetBeans是根据这个来构建项目的。
  • 之后直接下一步下一步finsh即可

三.配置一些参数(重要)

  • 项目右键->属性打开
  • 第一步配置make,选择构建命令一栏然后输入下面一段配置
  • ${MAKE} -f Makefile clean jvmg
  • 根据自己的JDK路径来配置注意这个路径和之前安装NetBeans时候的JDK可以不是同一个,这个JDK和你时候编译用哪个有关
    ALT_BOOTDIR=/home/maozuowei/software/jdk/jdk1.6/jdk1.6.0_45
  • 这个属性表示你的电脑是64位的
    ARCH_DATA_MODEL=64
    LANG=C
    ZIP_DEBUGINFO_FILES=0
  • 第二步配置运行(这个每个人的情况都可能不一样),

    文件搜索命令:locate:快,这个是从var/lib/mlocate.db里找的,系统默认一天自动更新,用sudo updatedb可以强制更新。只能搜索文件名。在终端输入locate gamma,这个时候可能会出现很多路径,找到像这样的路径/home/maozuowei/software/openjdk/build-debug/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma    一般结尾都是这个样子的,目录各自都不同。然后将你搜到的路径复制一份,黏贴到运行命令栏目里。然后配置环境变量,配置JAVA_HOME、CLASSPATH、LD_LIBRARY_PATH

  • 博主例子:

  • LD_LIBRARY_PATH    /home/maozuowei/software/openjdk/build-debug/hotspot/outputdir/linux_amd64_compiler2/jvmg

  • JAVA_HOME    /home/maozuowei/software/jdk/jdk1.6/jdk1.6.0_45

  • CLASSPATH    ${JAVA_HOME}/jre/lib/rt.jar;${JAVA_HOME}/bin;${JAVA_HOME}/lib/tools.jar

四.点击运行,出现下图所示那么大功搞成

不足之处请各位指正,不懂可以留言。

 

        

 

 

 

© 著作权归作者所有

桃核儿
粉丝 1
博文 16
码字总数 12740
作品 0
广州
程序员
私信 提问
【javac添加python 列表特性1】Ubuntu12.04下编译OpenJDK7的一些问...

刚开始选择在windows的Cygwin下编译,结果问题连连,两天都搞不定。。只有换到Ubuntu下面。。记录一下 不过12.04的Ubuntu使用的是3.2的内核,而openJDK的hotspot的Makefile里面支持的内核没这...

guoliang
2012/10/24
1K
3
openjdk7编译出错

大家好,这边在看这本书的时候,在进行编译openjdk7时,报了如下错误,请大神们指点一二,感激不尽: Linking vm... /usr/bin/ld: cannot open output file libjvm.so: Too many levels of symbol...

大大的微笑
2017/10/22
305
1
Java 虚拟机 OpenJ9 和 Hotspot 的 Benchmark 测试

IBM 开源了它开发的 J9 Java 虚拟机 (JVM),并将其贡献给了 Eclipse 基金会,重命名为 Eclipse OpenJ9。J9 是一个高性能可伸缩的 Java 虚拟机,是许多 IBM 企业级软件产品的核心,OpenJ9 可作...

局长
2017/09/19
4.1K
21
在Docker上编译OpenJDK 8

以前曾经试过在VMware上安装Linux,再编译OpenJDK 8,但是每次都不顺利,例如Linux环境,预装依赖软件,OpenJDK源码的选择等环境都会遇到问题,一旦失败再重新开始挺费时间的,现在用Docker就...

Docker
06/24
0
0
JDK安装

在CentOS7上安装JDK1.8 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器; 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 tools: mkdir -p tools 4 进入到目录 /usr/local/tools...

烟璃悠
2017/04/13
6
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate 5 Maven 仓库的 Artifacts

Hibernate artifacts 官方发布的仓库在 JBoss Maven repository 中。Hibernate 发布的 artifacts 也会同时同步到 Maven Central 仓库中,这是一个自动同步进程(可能会有一些延迟)。 Hibern...

honeymoose
32分钟前
4
0
如何学习uni-app?

uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。 开发者通过编写 Vue.js 代码,uni-app 将其编译到iOS、Android、微信小程序、H5等多个平台,保证其正确运行并达到优秀体验。 <templ...

达叔小生
36分钟前
4
0
OSChina 周一乱弹 —— 后来马云就一心想挣钱了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑:《空帆船》- 朴树 《空帆船》- 朴树 手机党少年们想听歌,请使劲儿戳(这里) @webw :第二次被锁在电梯里了 上次你忘带电梯卡, ...

小小编辑
52分钟前
387
10
关于does not give a valid preprocessing token

#define VFUNC(self) ((##self##)->_vptr) 这样在gcc下会编译失败, VC不会 报pasting ) does not give a valid preprocessing token 据说是因为版本问题 解法:去掉## define VFUNC(self) (......

shzwork
53分钟前
4
0
CSS盒子模型

一、什么叫框模型 页面元素皆为框(盒子) 定义了元素框处理元素内容,内边距,外边距以及边框的计算方式 二、外边距 围绕在元素边框外的空白距离(元素与元素之间的距离) 语法:margin,定...

wytao1995
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部