Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I do it a lot. These single-file programs can be called Java scripts when run without compilation.


Can you add a shebang line and have it truly be a script? I do self executing JARs with a bash stub/header all the time, but haven’t tried with this.


Sadly you can't, Java doesn't support comments starting with #

    $ ./shebang.java
    ./shebang.java:1: error: illegal character: '#'
    #!/usr/bin/java
    ^
    ./shebang.java:1: error: class, interface, enum, or record expected
    #!/usr/bin/java
      ^
    2 errors
    error: compilation failed
Self-executable jars though, that's an interesting idea. No reason why it can't work, zip archives are read from the end, you can put anything in the beginning, including "#!/usr/bin/java -jar"


I believe you can use shebang since java 11 but you can't have the filename extension be .java.



this has worked since the beginning but i don't think many people know about it


For the self executing JAR, I normally add a bash/shell stub for the header that ends with

    java -jar $0
The rest of it sets up the environment (JAVA_OPTS, -Xmx, etc).


How do you run a Java program without compilation?


It technically compiles it to memory before running it, but the point is that you don't have to invoke javac first. It's a relatively new feature.


Do you know for which Java version this first became available?


11: https://openjdk.org/jeps/330

Oh so actually, you can use a shebang, just without the .java extension and with the "--source" flag, it's specifically written out in that spec. I was doing my experiment wrong!


Awesome, thanks for sharing!


I wonder what could be done with Java script…


Sounds like a name that could have some success. Given that the logo for Java is a cup of coffee, maybe we could also call it "Coffee script".


though, in theory java has jshell for java-based shell scripts specifically




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: