Draft JEP: Launch Single-File Source-Code Programs

Volker Simonis volker.simonis at gmail.com
Mon Feb 12 14:38:59 UTC 2018

On Mon, Feb 12, 2018 at 3:22 PM, Roger Riggs <Roger.Riggs at oracle.com> wrote:
> Hi Jonathan,
> It would be  a great convenience to developers to NOT to have two types of
> java source files.
> Those that can be run directly and those that cannot. According to the JLS,
> the former can not
> be called java source files, they are something else.

Yes, that's exactly what I actually wanted to say. The JavaDoc analogy
can't be applied here because JavaDoc is completely transparent to the
JLS (because it is hidden within a comment). Not sure how hard and
controversial it would be tough, to change the JLS to allow and ignore
a shebang in the first line?

> $.02, Roger
> On 2/10/2018 11:59 AM, Jonathan Gibbons wrote:
>> Volker,
>> I don't see a compelling need to change the JLS to accommodate "shebang"
>> files. Most Java source files don't need the `#!` line, including any source
>> file passed to an explicit invocation of the Java launcher. The line is only
>> needed when the file is set up to be directly executed by the "shebang"
>> mechanism, in which case the line can be thought of as a "wrapper" supported
>> by the host system to enable such use. If the feature is sufficiently
>> popular, it may even be that editors will recognize and support the use of
>> such lines, in the same way that some editors recognize and support the
>> manipulation of javadoc comments, which are also not defined in the JLS
>> (beyond the basic definition of a comment in JLS 3.7).
>> -- Jon
>> On 2/9/18 2:51 AM, Volker Simonis wrote:
>>> Hi Jonathan,
>>> that's an interesting proposal. It is just unfortunate that a Java
>>> source file starting with "shebang" won't be a legal Java file
>>> according to the Java Language Specification. Or do you plan to change
>>> the JLS to allow (and ignore) "shebang" in the first line?
>>> Thanks,
>>> Volker
>>> On Fri, Feb 9, 2018 at 12:18 AM, Jonathan Gibbons
>>> <jonathan.gibbons at oracle.com> wrote:
>>>> This draft JEP contains a proposal to enhance the java launcher to
>>>> support
>>>> running a
>>>> program supplied as a single file of Java source code. The program will
>>>> be
>>>> compiled
>>>> and run, without the need to explicit invoke javac, or to package up a
>>>> jar
>>>> file.
>>>> For more details, see:
>>>> http://openjdk.java.net/jeps/8192920
>>>> -- Jon

More information about the jdk-dev mailing list