Cho rằng Java 9 là khi chúng tôi và cuối cùng chúng tôi có thể có một REPL java với jshell
Tôi đã hy vọng có một cách để thêm một shebang vào một kịch bản và có jshell
giải thích nó.Làm thế nào để thực hiện một kịch bản java với jshell?
tôi đã cố gắng tạo test.jsh
:
#!/usr/bin/env jshell -s
System.out.println("Hello World")
/exit
Tuy nhiên cung cấp cho:
⚡ ./test.jsh
| Error:
| illegal character: '#'
| #!/usr/bin/env jshell -s
|^
| Error:
| illegal start of expression
| #!/usr/bin/env jshell -s
| ^
Hello World
Hóa ra có một yêu cầu tăng cường cho điều này trong OpenJDK https://bugs.openjdk.java.net/browse/JDK-8167440.
Có cách nào khác để thực hiện việc này không?
Tính năng này hoạt động như thế nào? Tôi tự hỏi làm thế nào di động này được. Cấp rằng '#!' Không phải là tiêu chuẩn POSIX anyway nhưng chắc chắn như xa như số ma thuật đi nó sẽ được áp dụng rộng rãi nhất. – Steiny
Ít nhất 'bash' hỗ trợ dòng inital' // '. Xem chủ đề này để biết chi tiết http://mail.openjdk.java.net/pipermail/kulla-dev/2016-October/thread.html#1679 ... với Brian Goetz nói rằng việc tạo tệp '.jsh' có thể thực thi được là cố gắng biến jshell thành thứ gì đó mà nó không được thiết kế cho._ – Sormuras
> _Cách này có thể hoạt động như thế nào? _ Xem mô tả về "hack" tại phần _ "Bắt chước shebang qua Bash" _ tại http: // golangcookbook.com/chương/chạy/shebang/ – Sormuras