Where can I find a simple set of instructions to compile an OpenJDK 7 debug build on Ubuntu 11.10 (Oneiric)? A debug build would make more JVM options available for troubleshooting purposes; for example, WizardMode
. The developers' guide and build README have a lot of noise and are hard to follow.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
- Install relevant packages:
sudo apt-get install ant build-essential openjdk-6-jdk sudo apt-get build-dep openjdk-6-jdk
- Find the master OpenJDK Mercurial repository you want to start from. These instructions will use
jdk7u2
. - Command examples contain settings to allow Internet access through a proxy server; remove them if they are unnecessary for you.
- Clone the Mercurial top-level forest repository:
$ mkdir jdk7u2 $ cd jdk7u2 $ hg --config http_proxy.host=proxy:1234 clone http://hg.openjdk.java.net/jdk7u/jdk7u2 forest $ cd forest $ sh ./get_source.sh
- The build will fail while compiling the sound libraries. As suggested here, use the following to patch the appropriate
Makefile
:
$ echo -e "--- old/jdk/make/javax/sound/jsoundalsa/Makefile 2012-01-28 12:00:00.000000000 -0500\n+++ new/jdk/make/javax/sound/jsoundalsa/Makefile 2012-01-28 12:00:00.000000000 -0500\n@@ -65,7 +65,7 @@\n \t\$(MIDIFILES_export) \\\\\n \t\$(PORTFILES_export)\n\n-LDFLAGS += -lasound\n+EXTRA_LIBS += -lasound\n \n CPPFLAGS += \\\\\n \t-DUSE_DAUDIO=TRUE \\\\" | patch -p1
- Compile:
$ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=1234 -Dhttps.proxyHost=proxy -Dhttps.proxyPort=1234" $ . jdk/make/jdk_generic_profile.sh $ make ALLOW_DOWNLOADS=true fastdebug_build
- The compile will take a while.
- Verify the build:
$ build/linux-amd64-fastdebug/j2sdk-image/bin/java -version openjdk version "1.7.0-internal-fastdebug" OpenJDK Runtime Environment (build 1.7.0-internal-fastdebug-user_2012_01_28_13_25-b00) OpenJDK 64-Bit Server VM (build 22.0-b10-fastdebug, mixed mode) $ build/linux-amd64-fastdebug/j2sdk-image/bin/java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version
- If you have problems along the way, begin by reading The OpenJDK Developers' Guide and the OpenJDK Build README.