JDK8 - bypassing the building of the images

Ioi Lam ioi.lam at oracle.com
Fri Sep 13 05:18:16 UTC 2013


If you just change one or two files adding println, it might be much 
faster to just "javac Foo.java"and patch rt.jar by hand.

I use a script like this. It just takes a few seconds:

-----------------------------------
ROOT=build/linux-x86_64-normal-server-fastdebug
JAVAC=${ROOT}/jdk/bin/javac
RT=${ROOT}/images/j2sdk-image/jre/lib/rt.jar

FILES="jdk/src/share/classes/java/lang/invoke/LambdaForm.java \
jdk/src/share/classes/java/lang/invoke/LambdaMetafactory.java"

echo ${FILES}

rm -rf tmpclasses
mkdir tmpclasses
${JAVAC} -g -d tmpclasses ${FILES} && jar uvf0 $RT -C tmpclasses .
-----------------------------------

If you want to be fancy you can change FILES= to this so all files you 
just touched will be recompiled

     FILES=`find jdk/src -name \*.java -a -newer ${RT}`

- Ioi

On 09/12/2013 10:51 AM, Pete Brunet wrote:
> I made some changes for debugging in jdk8.  jdk ran for 9.5 min and
> images for a little over 13 min.  I'm currently changing code in
> javax.swing, javax.accessibility, and java.beans.  All those live in
> rt.jar so it would be nice to be able to copy a newly built rt.jar to an
> existing image without having to rebuild the images.  However, I didn't
> find rt.jar in the jdk tree.  Does it exist; maybe I just missed it?
>
> I know those are long build times but after trying lots of things I
> haven't had any success in getting to the low build times others
> experience.  A new SSD should arrive today so hopefully that will be
> running by tomorrow.  I'll report the results of that in another
> thread.  So maybe I won't care about build times after that but I
> suspect there are others on the list also suffering from long build
> times who would be interested in the answer to the above question.
>
> Pete




More information about the build-dev mailing list