Google v Oracleの事例を読んで、これらの質問に出くわしました(明らかに裁判長から)
...
少なくとも1996年の時点で、以下のことが真実であることに同意しますか?コアJavaアプリケーションプログラミングインターフェイスは次のとおりです。java.lang、java.util、およびjava.io。
Javaプログラミング言語は、上記の3つ以外のメソッド、クラス、またはパッケージを参照または要求していますか?
...
ソース:Groklaw
明らかに多くの法的影響がありますが、GoogleとOracleはおそらくいくつかの点で意見が一致せず、私は気にしません。法律は弁護士に任せてください。
ただし、ここには興味深い歴史が少しあると思います。
私の質問は、Javaのバージョン1.0には、(最初の任意のJavaはバージョン1.3に2001の周りにコーディングなかった誰かのように)あるものは外を必要としたjava.lang、java.utilと、java.io有効なJavaプログラムをコンパイルするには?
例として(C#5.0を使用)、awaitキーワードは(特に)に依存しています。コンパイラは、そのクラスなしでは仕様どおりに機能できませんでした。Task<T>GetAwaiter()
同様に、他のパッケージに依存するコアランタイム機能(ClassLoader *など)はありましたか?
私は好奇心から尋ねますが、最小限の実行可能なJava(言語、その周りのすべての法的ビットを無視する言語)に必要なものはまさに興味深いものです。
* ClassLoaderはJava 1.0の機能でさえあると仮定しています。7.0の仕様の一部であり、おそらく以前の多くのバージョンです。
awaitキーワードはに依存しませんTask<T>。Taskクラスはちょうどというものを満たすために起こるawaitキーワードがない(と呼ばれる方法に依存GetAwaiter()など)。
yieldなどを使用してください。とても興奮していawaitます。


