Netbeans and a subset of a JDK workspace

Brad Wetmore Bradford.Wetmore at Sun.COM
Thu Oct 16 08:47:47 PDT 2008


>> One of the other current limitations of the default projects was that 
>> the "j2se" project didn't index the build/<arch>/gensrc directory 
>> where java/nio/ByteBuffer and friends live (bug 6628175).  I was able 
>> to get the directories to show up in the file lister, but not hooked 
>> into the auto-completion/compilation mechanism.  I ended up talking to 
>> David Bristor, this group's moderator.  He had started working on the 
>> gensrc problem, but got 1/2 of it finished before he left Sun.  I was 
>> able to get the second half, so it's working now.
>>
>> I am now hooking in all the closed source directories as well.
>>
>> Once everything gets auto-compiled (15-20 minutes) and loaded into 
> 
>   What is this "auto-compilation" is actually doing? I mean, if I have
>   a fully built j2se workspace, shouldn't everything be compiled already?

Someone stop me if I say something wrong, I'll still a relative noob 
(i.e. newbie, beginner, hack) in netbeans!  I'm making some best guesses 
based on my experiences over the past week.

A little background first.  In normal Java projects, there is a target 
platform.  You target your app to a specific JDK, and it uses the built 
binaries for the Java class signatures.  As an aside, by default the 
source .zip in the JDK is used for the javadoc/sources.  You can specify 
an actual workspace:

     <jdk-ws-home>/src/share/classes
     <jdk-ws-home>/src/solaris/classes
     <jdk-ws-home>/src/windows/classes

and get the full javadocs for the internal classes as well.  And when 
you are in the debugger, if you go to the debugger's sources window, you 
can enable these directories in order to step into these methods.  VERY 
HANDY!

 >   What is this "auto-compilation" is actually doing? I mean, if I have
 >   a fully built j2se workspace, shouldn't everything be compiled
 >   already?

That's what I would have thought, but that's not what I'm seeing.  My 
guess is that it's because the current netbeans j2se project is set up 
as a free-form project, and thus doesn't specify a target platform. 
Yes, it does include a destination dir, but not a platform.  Thus, it 
needs to go through all of the source directories, and compile all the 
classes into signatures into:

     <$HOME>/.netbeans/.../var/cache

To avoid this massive initial first compilation, one of my first 
attempts at trying to set up a project using a built JDK binary as the 
target platform got really close, but ran into some type of 
auto-compilation problem.  Each file I open recompiled the world.  And 
it only occurred when I attached sources to other unrelated platforms. 
Otherwise, it was working pretty well.

>   I find that tweaking the default heap settings (doubling them) improves
>   things. Otherwise sooner or later you'll run into OOE.

I'm running this on a server-class machine and displaying back to my 
desktop, but that's not a bad idea.  I haven't hit an OOME yet.

Brad




More information about the nb-projects-dev mailing list