原文地址:https://marcin-chwedczuk.github.io/debugging-openjdk8-with-netbeans-on-ubuntu
概述如下:
1 当然是下载openjdk。我这里选的是jdk8u,这是目前各大公司使用的主流版本,另外jdk9和jdk10目录结构相较与传统的目录结构有不小变更,从已有的资料上找相关的代码会增加难度。两种下载方式:
1)hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/ . (注意后面这个代码当前目录的句点),这步完成之后还要执行下载下来的get_source.sh脚本。
2)使用git或其它方式从https://github.com/dmlloyd/openjdk下载完整的源代码。
2 下载编译源码所要使用的依赖。
sudo apt install
libx11-dev
libxext-dev
libxrender-dev
libxtst-dev
libxt-dev
libcups2-dev
libfreetype6-dev
libasound2-dev
(另外提一句,如果有哪位同学跟我一样使用的opensuse系统,最后那个libasound2-dev包是找不着的:可以安装alsa这个包替代)
3 构建makefile$ cd openjdk-jdk8u/
$ chmod +x ./configure
$ ./configure --with-debug-level=slowdebug --with-target-bits=64
4编译
make
5 运行我们的java程序
0)准备一个HelloWorld.class文件
1)$ ./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -cp "/home/me/dev/java/helloWorld/" HelloWorld (第一个参数是你上步编译出的java可执行程序,第二个参数是classpath,这里指向你放class文件的目录,第三个是含有main方法的类名。
Hello, world!(这是输出)
6 用netbeans运行和调试我们的openjdk。如果要这样做,则3,4,5步皆可省略。
1)从官网下载netbeans,要求支持C++。
2)新建C++工程,并从已有源码导入。
3)配置并运行configure脚本。
4)配置完成后项目自动运行make。
5)构建完成后指定可执行的java程序如5.1。
6)在源码中设断点并点击debug按钮(如有信号中断弹出框,则选择“不再补获该信号”和”继续前进“。
这几个步骤说的比较简略,是因为引文作者已十分细心的给出了截图。故不再赘言。
7 加断点的位置。
参考https://www.cnblogs.com/bhlsheji/p/4017816.html这篇博文。