Java 9は新しいHTTP/2クライアントAPIをインポートしますが、Java 8で使用する方法はありますか?Java8プロジェクトでHttp Client API(Java 9以降)を使用するにはどうすればよいですか?
OR
のJava 8でそれを利用できるようにする(JavaScriptから)任意のshim
/polyfill
がありますか?
Java 9は新しいHTTP/2クライアントAPIをインポートしますが、Java 8で使用する方法はありますか?Java8プロジェクトでHttp Client API(Java 9以降)を使用するにはどうすればよいですか?
OR
のJava 8でそれを利用できるようにする(JavaScriptから)任意のshim
/polyfill
がありますか?
Java 8で使用する方法はありますか?いいえ
、jdk.incubator.http
モジュールは、Java 9ためが追加されているため。
コンパイル時にJava8で--release 8
オプションを指定してコンパイルすることはできません。これを再現するために、最小限のコードで
$ javac --release 8 .../src/com/HttpGet.java $ .../src/com/HttpGet.java:3: error: package jdk.incubator.http does not exist import jdk.incubator.http.HttpClient; ^
:あなたはとしてエラーが発生して終わるだろう -
import jdk.incubator.http.HttpClient;
public class HttpGet {
public static void main(String[] args) {
HttpClient httpClient = HttpClient.newBuilder().followRedirects(HttpClient.Redirect.ALWAYS).build();
System.out.println(httpClient.version());
}
}
また、ドキュメントは明らかに、この先行を読み込み
Incubating Feature。将来のリリースで削除されます。
原則として、そのソースが利用可能です。 ThreeTen-Backport providing java.time
for Java 6/7と同様に、コードをコピーしてコンパイルし、Java 8で使用可能なjarを作成します(コードにJava 9が必要な場合は、機能の一部が変更されているか、または変更されている可能性があります)。
しかし、まだ利用可能ではないようです(クイック検索後)。この方向に進む場合は、関連するライセンスに必ず従ってください。
jdk9からソースコードをコピーしてコンパイルしようとしましたが、内部APIがないために失敗しました。 –
※100%の時間を取っているわけではなく、結局*ファイナライズ*してしまい、結局idkに残ってしまいます。私が推測する小さな言葉遣いの問題 – Eugene
@Eugene確かに。リンクされたjavadocを引用しました。それはIncubator JEPの背後にある考え方と矛盾していることがあります。 – nullpointer
インキュベーション機能はほとんどがJavaソースコードで実装されているので、自分でjarファイルにコピーしてコンパイルしようとしましたが、Java 8コンパイラに内部APIがないと不満を... 欠けているAPIは 'System .Logger'、 '... misc.Unsafe'、' AsnycResult'など –