using jshell in executable UNIX scripts
ShinyaYoshida
bitterfoxc at gmail.com
Mon Oct 10 15:47:51 UTC 2016
Hi Peter,
Thank you for your nice feedback!
I also think it is cool if it's supported. I've got a similar feedback from
Japanese community when I've talked about jshell.
I've filed it:
https://bugs.openjdk.java.net/browse/JDK-8167440
Regards,
shinyafox(Shinya Yoshida)
2016-10-10 22:55 GMT+09:00 Peter Levart <peter.levart at gmail.com>:
> Hi,
>
>
> "jshell" command is a very nice interactive Java shell, but it could also
> be used for scripting. An executable script in any major UNIX OS is a
> textual file with executable permissions that starts with the following two
> characters: #!
> The rest of the 1st line is the path to the interpreter executable and any
> arguments passed to it. The last argument passed to the interpreter is the
> path to the executable script. In case of jshell, one would want such
> script to be written like:
>
> #!/home/peter/Apps64/jdk9/bin/jshell
>
> System.out.println("Hello World!");
>
> /exit
>
>
> The problem is that jshell tries to parse the 1st line using jshell syntax
> and the result of running above executable script is:
>
> | Error:
> | illegal character: '#'
> | #!/home/peter/Apps64/jdk9/bin/jshell
> | ^
> | Error:
> | illegal start of expression
> | #!/home/peter/Apps64/jdk9/bin/jshell
> | ^
> Hello World!
>
>
> The script is actually executed, but the syntax error encountered in the
> 1st line is printed too.
>
> Would it be possible for jshell to skip 1st line if it starts with
> characters #! like other shells do?
>
>
> Regards, Peter
>
>
More information about the kulla-dev
mailing list