[英]How to set the Java version in JShell?
我正在使用JDK 11 中的 JShell來試驗一些具有泛型的行為。
我想將解釋的 java 版本設置為版本 8。這將允許我具有與Java Language Specification 8 中定義的相同的類型推斷行為。
我該怎么做?
您要申請的標志是:
"-source 8"
將其傳遞給 JShell 后面的編譯器的方法是:
"jshell -C "-source 11"
......但它不會工作。 我剛剛試過了,Jshell 無法解析這個異常。 不應該是這樣,所以我查看了拋出錯誤的 Arguments 類的代碼。 結果證明, javac
選項被分為不同的類別,並且只允許通過 JShell (com.sun.tools.javac.main.Option.java:1308)使用BASIC
命令。
設置源標志不屬於該組,因此驗證器將其丟棄並且不會應用該設置。
如果您想驗證這一點,您可以嘗試將 BASIC 類型的參數傳遞給 javac,例如“-p”,您將看到它正確傳遞。
這是不可能的,JShell 工具使用 Java 平台模塊系統 (JPMS),這是一個 Java 9 功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.