Win10 Visual Studio2010编译JDK8诡异错误!!
文章目录
前言
《深入理解Java虚拟机》(第三版)一书第一章实战部分就是手动编译JDK,相信读过的老铁萌都会想着动手去编译一下吧~
本质上编译JDK8就两个步骤configure
和 make
两个步骤,但本人在make
步骤中遇到一个诡异的报错信息?
报错
## Starting hotspo
make[2]: warning: -jN forced in submake: disabling jobserver mode.
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
NMAKE : fatal error U1073: don't know how to make 'files\java\jdk1.7.0_80'
Stop.
make[3]: *** [Makefile:217: generic_build2] Error 2
make[2]: *** [Makefile:167: fastdebug] Error 2
make[1]: *** [HotspotWrapper.gmk:45: /cygdrive/d/Users/WSharkCoder/Desktop/jdk-jdk8-b120/build/windows-x86_64-normal-server-fastdebug/hotspot/_hotspot.timestamp] Error 2
make: *** [/cygdrive/d/Users/WSharkCoder/Desktop/jdk-jdk8-b120//make/Main.gmk:109: hotspot-only] Error 2
分析
报错信息提示:不知道如何去make
'files\java\jdk1.7.0_80'
其中 ‘file\java\jdk1.7.0_80’ 只有可能指代 BootJDK地址 /cygdrive/d/'Program Files'/Java/jdk1.7.0_80
BootJDK 地址通常在 configure 过程中指定:
bash ./configure
–with-boot-jdk=/cygdrive/d/‘Program Files’/Java/jdk1.7.0_80
那么问题大致就是无法正确识别BootJDK地址
至于到底是脚本无法识别BootJDK地址还是Make程序无法识别相应的BootJDK版本,本人也不大清楚~
解决
重新安装BootJDK在其他无空格路径下,如本人 D:\Users\WSharkCoder\Java\jdk1.7.0_80
路径下.
实际上本人也有尝试转义空格或加引号,但都解决不了
例如:
转义空格
bash ./configure
–with-boot-jdk=/cygdrive/d/Program\ Files/Java/jdk1.8.0_281
–with-freetype="/cygdrive/d/Users/WSharkCoder/freetype"参考文献: https://blog.csdn.net/qq_17020781/article/details/81586192
加引号
bash ./configure
–enable-debug
–with-target-bits=64
–with-boot-jdk=/cygdrive/d/‘Program Files’/Java/jdk1.7.0_80
–with-freetype=/cygdrive/d/Users/WSharkCoder/freetype \
重新 configure
和make
就可以愉快的编译JDK了~
小小空格,可笑可笑55555555~