Draft JEP: Launch Single-File Source-Code Programs

Jonathan Gibbons jonathan.gibbons at oracle.com
Sat Feb 10 16:59:31 UTC 2018


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