2017-09-24 8 views

答えて

7

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。将来のリリースで削除されます。

+1

※100%の時間を取っているわけではなく、結局*ファイナライズ*してしまい、結局idkに残ってしまいます。私が推測する小さな言葉遣いの問題 – Eugene

+0

@Eugene確かに。リンクされたjavadocを引用しました。それはIncubator JEPの背後にある考え方と矛盾していることがあります。 – nullpointer

+1

インキュベーション機能はほとんどがJavaソースコードで実装されているので、自分でjarファイルにコピーしてコンパイルしようとしましたが、Java 8コンパイラに内部APIがないと不満を... 欠けているAPIは 'System .Logger'、 '... misc.Unsafe'、' AsnycResult'など –

1

原則として、そのソースが利用可能です。 ThreeTen-Backport providing java.time for Java 6/7と同様に、コードをコピーしてコンパイルし、Java 8で使用可能なjarを作成します(コードにJava 9が必要な場合は、機能の一部が変更されているか、または変更されている可能性があります)。

しかし、まだ利用可能ではないようです(クイック検索後)。この方向に進む場合は、関連するライセンスに必ず従ってください。

+0

jdk9からソースコードをコピーしてコンパイルしようとしましたが、内部APIがないために失敗しました。 –

関連する問題