Недавно я начал читать книгу "Углубленное понимание виртуальной машины Java". Когда эта книга была опубликована, Oracle еще не запустила JDK8, но прогноз автора о развитии JDK в главе 1.5 все еще был очень точным, как и его функциональное программирование., модульность и т. д. Когда я это увидел, я восхитился предвидением автора.Эти моменты были в основном предсказаны, и, увидев это, я еще больше заинтересовался этой книгой.
Конец первой главы — компиляция OpenJDK самостоятельно, JDK7 еще давным-давно, так что давайте сразу перейдем к JDK8.
Представьте окружающую среду
- Система Centos7
- Bootstrap JDK 1.8
- OpenJDK 1.8
Поскольку это первый раз, когда компилируется openjdk, поэтому выберите свой собственный сервер в качестве среды. Я уже устанавливал JDK8 на этот сервер, и его можно использовать в качестве моего BootStrap jdk.(Установка Linux jdk8 не будет представлена.)
BootStrap JDK — это исполняемый jdk openjdk, потому что openjdk написан на java, а для запуска java требуется среда.
использовался раньше
hg clone hg.openjdk.java.net/jdk8u/jdk8u jdk8u
Эта команда предназначена для загрузки openjdk, но позже я проверил структуру каталогов openjdk и обнаружил, что тот, который я скачал, отличается от того, что есть в Интернете, поэтому я изменил другой. адрес:
disk.baidu.com/is/1DKrenyo LX6…Пароль: r653
Правильная структура каталогов выглядит следующим образом:
Затем переходите к установке того, что вам нужно.
Установите пакет alsa.
yum install alsa-lib-devel
Установить cups-devel
yum install cups-devel
Установите X-библиотеки
yum install libX* yum install xrender
установить г++
yum install gcc gcc-c++
установить фритайп
yum install freetype
установить муравей
yum install ant yum install ccache
Установите переменные среды после установки
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export LANG=C
unset JAVA_HOME
unset CLASSPATH
export ALT_BOOTDIR=/usr/local/java/jdk1.8.0_161
export ANT_HOME=/usr/bin/ant
export ALLOW_DOWNLOADS=true
export USE_PRECOMPILED_HEADER=true
export ARCH_DATA_MODEL=64
export HOTSPOT_BUILD_JOB=6
export ALT_PARALLEL_COMPILE_JOBS=6
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
Это моя собственная переменная среды.
Затем выполните файл конфигурации
chmod +x configure ./configure
затем скомпилировать
make
При компиляции в первый раз я использовал пакет, скачанный с hg.Как бы я его не компилировал, всегда сообщал об ошибке в конце. Итак, я изменил jdk по ссылке выше.При первой компиляции была проблема, но во второй раз все было в порядке. Прилагаемые чертежи выглядят следующим образом. вечноноцид://C6FAA89E-4A5B-44D0-A821-BA0101E2FCEC/appyinxiangcom/11444250/ENResource/p176
Итак, как вы видите, что он действительно скомпилирован? Используйте команду java -version и сравните ее с sun jdk. солнце JDK: вечноноцид://C6FAA89E-4A5B-44D0-A821-BA0101E2FCEC/appyinxiangcom/11444250/ENResource/p174
открыть JDK: вечноноцид://C6FAA89E-4A5B-44D0-A821-BA0101E2FCEC/appyinxiangcom/11444250/ENResource/p175
Здесь компилируется OpenJDK Его преимущество в том, что можно просмотреть весь исходный код, и даже добавить точки останова для запуска, что делает нам более удобным изучение принципа работы JVM.
Ссылаться на:
https://www.cnblogs.com/mr-long/p/5841604.html
https://www.jianshu.com/p/5db1131b3038