本人是mac,升级到了10.15。导致xcode9等无法安装,找了很多方式都没解决openjdk8编译。所以直接放弃了这种兼容方式,直接使用合适的系统来做合适的事情,减少花费在环境上的时间。
系统选择
我选择是ubuntu16.06。 这个系统主要只是缺失一些库,其他的都是符合编译环境的。
环境准备
- 安装缺失的库。
sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev
sudo apt-get install libfontconfig1-dev
- Mercurial安装
这里不要用apt-get安装,那个Mercurial版本有点低,去官网下载,然后配置环境变量 - jdk安装
编译jdk用的,因为只是需要编译,这里方便选择了openjdk。下载oracle 8还需要登录账户。
sudo apt-get install openjdk-8-jdk
源码下载以及编译
源码下载参考openjdk官网,我选择的dev分支。
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/ YourOpenJDK
cd YourOpenJDK
bash ./get_source.sh
这个clone可能会中断,多尝试几次,如果不行,我们可以选择从git上下载,只不过可能和最新的有点区别。这个按照自己的需求来。
我们编译一个debug版本
bash ./configure --disable-zip-debug-info --with-debug-level=slowdebug
make all
如果选择的是ubuntu16.06。这里应该是非常顺畅。
ide配置
ide我选择了netbeans,他支持c/c++,也支持java,关键是openjdk里有netbeans的工程文件。选择只有netbeans8和netbeans9。以上版本就不要选择了,9以上java项目的插件有问题,支持力度不好,识别不出工程来。
选择netbeans8的时候直接选择all的版本安装。
选择netbeans9需要单独安装插件。下面以9为例。
tools->plugins->settings增加插件源
url填写
http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz
在available plugins中点击,check for newest
我们就可以看到c/c++插件。
导入工程
file-> open project
选择如上文件,就可以导入工程。但是会提示和c/c++关联。我们现在就可以查看c部分的代码了。
然后导入上图的world,就可以查看java的代码了。
可以实现jni的方法的无缝跳转。
debug hotspot
选择我们的build result
在debug的选项中,选择我们debug的命令
填写
${OUTPUT_PATH} -version
这里大家就明白了,这里是我们java执行的参数和命令,可以写-cp等等。
我们打断点到想要的地方,例如入口main.c
然后直接点击netbeans的debug project。选择的是openjdk而不是world。
共同学习,写下你的评论
评论加载中...
作者其他优质文章