皮皮网
皮皮网

【瑜伽馆源码】【百数源码】【uibot导出源码】mac jdk 源码

来源:同花顺画三角副图源码博客 发表时间:2024-11-30 00:56:41

1.kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境
2.如何用Mac完美编译OpenJDK 7

mac jdk 源码

kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境

       在探索Kafka源码的源码过程中,决定搭建本地环境进行实际运行,源码以辅助理解和注释。源码由于日常开发中常使用Kafka 2.7版本,源码选择了在MacBook Pro M1笔记本上搭建此版本的源码源码环境。搭建过程中,源码瑜伽馆源码记录了遇到的源码障碍,方便未来再次搭建时不必从头开始。源码

       搭建Kafka 2.7源码环境需要准备以下基础环境:

       一、源码Zulu JDK1.8

       在MacBook Pro M1笔记本上,源码基本都已安装JDK,源码版本不同而已。源码使用的源码是Zulu JDK1.8版本,通过下载.dmg格式的源码一键安装,环境自动配置,源码百数源码安装路径通常在 /Library/Java/JavaVirtualMachines。

       二、Scala 2..1

       并未在系统里安装Scala,而是直接利用IDEA。按照Preferences -> Plugins -> Scala安装。选择IDEA的不同Scala JDK版本。

       三、uibot导出源码安装Gradle6.6

       通过官网gradle.org/releases/下载Gradle6.6版本。如国内下载速度较慢,可直接从百度网盘下载安装包。安装完成后,解压并放置在目录/Users/helloword/software/gradle-6.6,通过mac终端执行指令配置环境。

       四、omnirom源码下载Zookeeper3.4.6安装

       直接从百度网盘下载zookeeper-3.4.6.tar.gz包,解压后放置在三台机器的/app目录下。在每个目录中创建data子目录,并建立myid文件,按照特定数字填写。在zoo.cfg文件中进行配置并复制至其他机器。

       五、easyclick快手源码Kafka2.7源码部署

       从官网下载Kafka 2.7源码,或从百度网盘获取。解压至目录/Users/helloword/software/kafka/kafka-2.7.0-src,并通过Gradle构建环境。在mac终端执行指令,生成gradle-wrapper.jar,配置依赖。将源码导入IDEA,加载Gradle构建的项目。

       六、源码运行

       确保源码运行打印日志,需将log4j.properties复制到core的 resources目录,并在build.gradle中添加log4配置。修改config/server.properties配置,包括zookeeper路径和broker的ip。配置server、consumer、producer三个进程,确保Kafka服务、消费者和生产者能够正常工作。

       整个Kafka 2.7版本源码的本地搭建步骤完成。后续计划撰写系列文章总结阅读源码的经验。关注公众号写代码的朱季谦,获取更多分类归纳的博客。

如何用Mac完美编译OpenJDK 7

       å‰æ®µæ—¶é—´ä¸ºäº†ç ”究JVM,于是去下了OpenJDK6编译一把,就因为少声卡驱动,又没查到如何解决,结果总是编译不成功,遂放弃。但是近来调试jdk源码的时候,发现很多调试信息都没有,看得我那个辛苦啊。正好一朋友成功编译了OpenJDK7,我就又去下了一个试编,虽然在CentOS下成功了,但是我Mac下又用不了,所以我就花了点时间再次在Mac下弄一次。整体来说还算顺利,现在已经很开心的用上了。

       1.选择OS X版本很重要。

        目前我的Mac版本是.,一开始没想那么多,配置好必要信息以后就开始编,结果错误满屏。简单看过之后发现是编译C文件的时候参数有误,于是查了一下,才知道是LLVM版本太新,不兼容低版本的一些编译参数,具体的可以看看这篇文章/blog/ 的第8点。我也照着上面改了点代码,但是依旧编译不过。这时我想到一个很简单的办法,既然高版本不行,我就装个低版本的呗。由于最新的OS X不能装低版本的Xcode(装了Xcode才能装LLVM),所以去下了一个.8的OS X装在虚拟机里,然后再装个Xcode4.4,地址后面附上。

        装好Xcode以后,要手动下载LLVM安装。打开Xcode,随便建立一个空项目,然后打开Preferences,找到如下所示的地方开始安装(因为我已经安装过了,所以是Installed)

       ç¬¬ä¸€æ­¥å’±å°±è¿™ä¹ˆæžå®šäº†ã€‚

       2.安装X

        X这玩意是unixç±»os使用的图形系统,.8以前的OS X是自带的,但是从此以后就不自带了。对应于Mac,你需要装XQuartz,这个没有版本限制,去网上下最新版即可。装这个的原因是当时在编译PolicyTools的时候出现了如下错误:

       ld: library not found for -lX

       åŽé¢æŸ¥åˆ°äº†è¿™ä¸ª/hgomez/obuildfactory/wiki/Building-and-Packaging-OpenJDK7-for-OSX才去想着试装一下XQuartz才解决问题的。

       å®‰è£…以后要为X建立软连接

       sudo ln -s /usr/X/include/X /usr/include/X

       3.安装freetype

        在linux下编译openjdk的朋友可能遇到过需要安装freetype的要求,然后安装下并将安装目录加到环境变量里就好了。但是OS X不一样,freetype单独安装实际是没用的。虽然单独安装能让编译前的检查通过,但是到后面还是会出错,至于原因我没找到。那怎么办呢?实际上如果安装好X,freetype就一起安装好了,大家可以去X的目录里看看是否有freetype。

       è™½ç„¶è¯´å®‰è£…了X就自带freetype,但是编译过程中可能会出现如下错误:

       error: freetype/config/ftheader.h: No such file or directory

       å®žé™…上就是目录问题,执行下面这句命令就好了:

       sudo ln -s /usr/X/include/freetype2/freetype/ /usr/X/include/freetype

       4. 配置环境变量

        和在Linux下编译相比,OS X的环境变量配置相对来说简单很多。只需要配置编译需要的jdk和llvm的目录就可以了。

        因为很多源代码都是用本机现有的jdk来编译,所以预装一个低版本的jdk是必须的,这里我们需要安装jdk6。安装好以后,找到其安装目录,并添加如下环境变量:

       [plain] view plaincopy

       export ALT_BOOTDIR=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

        通常来说安装目录都应该在/System/Library/Java/JavaVirtualMachines目录下。如果不在的话,有个技巧可以找到。因为安装好jdk以后,系统会自动在/usr/bin下建立指向java命令的软连接,所以执行“ls -l /usr/bin/java”就能看到这个命令指向哪,然后这么顺着找下去就能找到。

        llvm是编译C类文件所必须的,所以要把它的所在目录添加到环境变量里。通常OS X下安装app都会把app移到Applications目录下,所以我最初安装Xcode的时候也把他移进去了,如果你把Xcode放在了别的目录,那就找到对应的目录即可。

       [plain] view plaincopy

       export ALT_COMPILER_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin

       5.获取编译源码

       æŒ‰ç…§è¿™ä¸Šé¢çš„第三点获取源代码 /arungupta/entry/build_open_jdk_7_on 如果没有装hg的需要自行安装

       åˆ°çŽ°åœ¨ä¸ºæ­¢ï¼Œç¼–译前的准备工作已经完成。我们可以先执行make sanity执行下编译前的检查。如果检查通过,先来看看具体的编译命令:

       [plain] view plaincopy

       make ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true SKIP_DEBUG_BUILD=false SKIP_FASTDEBUG_BUILD=false ALWAYS_PASS_TEST_GAMMA=true HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`

       è¿™é‡Œæœ‰ä¸¤ä¸ªé—®é¢˜ï¼š

       a. ALLOW_DOWNLOADS=true表示编译过程中允许下载。因为有些编译模块,比如jaxp,编译脚本中指定了需要下载特定的包。虽然我没试过设置成false会不会影响编译,但是还是推荐设置成true。但是这就带来另一个问题,下载这类包很费时间,有时候就会在那卡很长时间,所以我根据编译日志找到编译脚本中控制下载的具体命令,修改修改并且把用迅雷下的对应包放到正确目录中,然后重新编译一遍,就能顺利通过了。这一点后面我会详说。

       b. SKIP_DEBUG_BUILD=false SKIP_FASTDEBUG_BUILD=false这两个表示编译出来的jdk或者hotspot是否可以debug。FASTDEBUG表示的应该是提供简单的debug功能,如果想要完整的debug,则SKIP_DEBUG_BUILD必须设置为false。不过这里提醒一点,如果想在debug jdk的时候能看到debug信息,比如变量名等,只需要SKIP_FASTDEBUG_BUILD设置为false就可以了

       å¦‚果这两个问题都不是问题,那么你就可以按回车了。如果debug和fastdebug都是false,再加上用虚拟机编译,所以需要的时间会比较长,你也许需要找一部长一点的电影来消磨一下了。最后编译出来的结果是这样的:

       j2sdk-image就是你自己编译出来的jdk,可以直接用了。至于其他目录下的内容,各位自己琢磨吧。

       çŽ°åœ¨æ¥è¯´ä¸‹ALLOW_DOWNLOADS=true引起的问题。

       ç¼–译过程中要下载多少包我不清楚,但是我个人遇到下载很久的包总共有三个:

       jaxp_.zip、jdk7-jaf-__.zip、jdk7-jaxws2_2_4-b-__.zip

       æˆ‘之前说过可以修改编译脚本跳过下载并且用我们已经下载好的,但是实际编译过程中,这三个包对应的的编译脚本是动态生成的,所以你只能等到他卡在那了,才能停下来并找到脚本修改之。因此因为这三个包,我们总共需要停3次。虽然有点蛋疼,但是比起一直卡在那好太多了。

       å‡è®¾æˆ‘们编译的是普通版本,即非DEBUG和非FASTDEBUG。下面以jaxp_.zip为例子讲一下怎么修改对应脚本:

       è„šæœ¬æ‰€åœ¨ä½ç½®ï¼šopenjdk根目录/build/macosx-universal/jaxp/build/xml_generated/build-drop-jaxp_src.xml

相关栏目:时尚