Netbeans and a subset of a JDK workspace
Bradford.Wetmore at Sun.COM
Wed Oct 15 18:02:03 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
memory, it's surprisingly fast. Restarting/scanning current project is
just under a minute, and expanding the node for the shared sources is
just under two. :) Fortunately, it's not crashing all the time like my
first experience with NetBeans 4.1! I don't really have to restrict to
the files of interest once everything's loaded, it's responsive enough.
Unless I find something that's a showstopper, I'll probably start using
netbeans for my day-day work.
daniel fuchs wrote:
> Hi Brad,
> You could have a look at how the make/netbeans/jmx project is
> This is a project that only compiles a subset of the jdk sources
> (the JMX sources) put them in a jmx.jar and then prepend that jar
> to the bootclasspath.
> For us using the latest promoted JDK7 build with our work-in-progress
> jmx.jar in the bootclasspath is usually sufficient for
> developing/testing/debugging purposes.
> Hope this helps,
> -- daniel
> Brad Wetmore wrote:
>> I'd recently drunk a bit (lot?) of the netbeans 6.1 Kool-Aid. Wow,
>> what an improvement over 4.1. I swore that I'd rather die using vi
>> after that initial netbeans experience, but here I am! ;)
>> If I open the "jdk/make/netbeans/j2se" project, I might as well walk
>> away and have lunch. The internal indexing/compiling of the entire
>> j2se project simply takes forever on my relatively fast machine, with
>> the majority of the time being in the internal compilation. I'd
>> really like to just limit the sources to specific code of interest
>> (core libs, networking, security). (What's this Swing thing I hear
>> people talk about... ;) )
>> A big optimization that seems to be working for me is the following:
>> 0) Install netbeans 6.1
>> 1) Clone/build (using gnumake) a jdk workspace (say JSN) as usual.
>> 2) Go to Tools->Java platforms.
>> Add the built platform but do not include links to the sources.
>> Call this "jsn-gate: no sources" We'll set the source
>> locations in the project in the next step.
>> 3) Create a new project from existing sources (jdk/src/shared,
>> jdk/src/solaris, etc). Include only the JDK
>> sources I care about (core libs, networking, security),
>> everything else will be excluded. For
>> =java/lang/, java/math/, java/net/, java/nio/, java/security/,
>> java/text/, java/util/, javax/crypto/, javax/net/, javax/security/,
>> javax/smartcardio/, javax/xml/crypto/, sun/io/, sun/launcher/,
>> sun/misc/, sun/net/, sun/nio/, sun/security/, sun/text/, sun/tools/,
>> sun/util/, com/sun/security/, com/sun/crypto/, com/sun/net/
>> In the properties menu for this project, link this project to the
>> JDK platform just created in step 2 (jsn-gate: no sources).
>> This seems to internally compile only the sources I care about, not
>> the whole world!
>> Use this configuration to do your library development. When you
>> want to compile, do so in a separate window (that is, don't use the
>> netbeans ant build, but use gnumake as usual).
>> 4) For testing: Like in 2a, create a new jdk platform based on the
>> build, but this time include links to all the sources in
>> open/shared, open/solaris, etc. Call this "jsn-gate."
>> Now create a new project with a simple test case. Link with the
>> platform "jsn-gate". Then when you want to debug and step into
>> the core libraries, you have *ALL* the sources you need, but
>> without them being internally compiled. Indexing seems to take
>> much less time. This also has all the javadoc as well.
>> Is there an easier/faster way? This environment comes up in 30 seconds
>> or so, and drilling into the source packages takes about 10 seconds
>> the first use.
>> Note I am *NOT* an expert in projects, maybe someone has already
>> figured this out? Looking at a few of these related projects in the
>> jdk/make/netbeans directories, they look like they're being done in
>> the same way as j2se.
>> Potential Netbeans Convert- ;)
More information about the nb-projects-dev