JEP 201: Modular Source Code

mark.reinhold at oracle.com mark.reinhold at oracle.com
Mon Aug 11 15:28:33 UTC 2014


2014/8/7 6:29 -0700, alan.bateman at oracle.com:
> On 06/08/2014 15:08, Stephen Colebourne wrote:
>> Just wanted to express my surprise that java files are still to be
>> located in "src/.../classes". For me, most open source projects and
>> most users of Maven and other build systems, "classes" is the name of
>> the *output* directory containing ".class" files. Having the ".java"
>> files in there is very confusing.
>> 
>> As such, could I request that consideration is given to using
>> "src/.../java" as per the Maven inspired standard directory layout.
>> 
>> If that is not deemed acceptable (because of the root package name of
>> java for example) I'd be happy with other sensible options
>> ("src/.../javasrc"?), but please, not "classes"!
> 
> A historical note, going way back then the java sources were in a "java" 
> directory (as in java/java/lang/Object.java). It changed to using 
> "classes" in JDK 1.2. I don't know the full history/rational but perhaps 
> "java/java" was confusing then.

Yes, that's exactly why we made that change, in 1997.  Java class (and
resource) definitions are under the "classes" directory; native class
and procedure definitions are under the "native" directory.

Renaming "classes" to something new ("javasrc", or whatever) raises the
question of whether we then need to move resource files under a separate
directory, as Maven does, and then also split source code for native
classes and procedures into language-specific directories ("csrc",
"cppsrc", etc.).  This all seems more trouble than it's worth.

I understand how "classes" can be confusing to some, but hundreds (if
not thousands) of developers have had no trouble working with it for
many years now.  In the context of all the other changes we're making,
the familiarity of the "classes" and "native" directories will help
people adapt from the old source-code layout to the new one.  Renaming
these directories would just add further confusion.

- Mark


More information about the jigsaw-dev mailing list