web-dev-qa-db-ja.com

Java 1.0の「コア」APIパッケージは何でしたか?

グーグル対オラクルの訴訟について読んで、私はこれらの質問に出くわしました(どうやら裁判長から)

...
少なくとも1996年の時点で、以下が真実であることに同意しますか?

以下はコアJavaアプリケーションプログラミングインターフェース:Java.lang、Java.util、Java.ioです。

Javaプログラミング言語は、上記の3つ以外のメソッド、クラス、またはパッケージを参照または要求しますか?
...

ソース: Groklaw

明らかに多くの法的問題があり、GoogleとOracleはおそらくいくつかの点で反対します。私は気にしません。法律は弁護士に任せなさい。

しかし、ここには興味深い歴史があると思います。

私の質問は(最初に何かをした人Java 2001年にバージョン1.3でコーディングした)として、バージョン1.0のJavaはJava.langJava.util以外で必要なものでした、およびJava.ioを使用して、有効なJavaプログラムをコンパイルしますか?

例として(C#5.0を使用)、 await キーワードは Task<T> GetAwaiter()(とりわけ)。コンパイラーは、そのクラスなしでは仕様どおりに機能できませんでした。

同様に、他のパッケージに依存するコアランタイム機能( ClassLoader *など)はありましたか?

私は好奇心から求めていることを認めますが、最低限実行可能なJava(その周りのすべての合法的なビットを無視する言語))に必要なものは興味深いものです。

* ClassLoaderは、Java 1.0の機能でさえあります (7.0の仕様) の一部であり、おそらく以前の多くのバージョンです。

38
Kevin Montrose

Wikipediaごと 、Javaの最初の正式にリリースされたバージョンは、1996年1月23日に1.0.2でした。

最初の安定バージョンはJDK 1.0.2でした。 Java 1と呼ばれます

Java 1.0.2とすべての関連ドキュメントのアーカイブがあります here

  • JDK 1.0.2 APIリファレンス(ブック形式)
  • JDK 1.0.2 APIリファレンス(javadoc形式)
  • Javaチュートリアル
  • Java言語仕様(リンク切れ、 ここに戻る
  • Java仮想マシンの仕様

ここにJDK 1.0.2ビットのダウンロードがあるが表示されます

http://www.Pascal-man.com/download/download-jdk.shtml

それは執筆の時に私のために働きます。

Java 1.0.2 on Windows 7 x64

未処理のJava 1.0.2


言語仕様では、次のクラスが参照されています(完全引用ではなく、単一引用)。

  • クラス(セクション4.3.1)
  • 文字列(セクション4.3.1)
  • オブジェクト(セクション4.3.2)
  • ランダム(セクション4.4)
  • スレッド(セクション17.2)
  • ThreadGroup(セクション17.2)
  • スロー可能(セクション11)
  • エラー(セクション11.2)
  • 負荷と負荷の負荷、すべてJava.lang(セクション11.5.2.1-11.5.2.2)
  • RuntimeException(セクション11.2.1)
  • 「配列クラス」、[Iなど(セクション 10.8

...technically[Iなどのため、その時点で私は見なくなりました。 al。 Java.langJava.util、またはJava.ioパッケージに含まれていません。

例:

class Test {
  // Compare namespaces of built-ins object and int[]
  public static void main(String[] args){
    int[] arr = new int[0];
    Object obj = new Object();

    Class arrClass = arr.getClass();
    Class objClass = obj.getClass();

    Class arrSuper = arrClass.getSuperclass();

    System.out.println("plain jane Object - " + objClass.getName());
    System.out.println();
    System.out.println("int[] - "+arrClass.getName());
    System.out.println("super of int[] - "+arrSuper.getName());
  }
}

アウトプット

enter image description here

動作はモダンと1.0.2の間で一貫しています

enter image description here

55
Jeff Atwood

元のJDKには12個未満のパッケージしかありませんでした-これらに加えて、アプレット、awt、awt.peer。それはそれであったかもしれません!これらの3つのパッケージには、コアJVM自体に明示的に認識されているすべてのクラスが含まれており、言語仕様に記載されているこれらのパッケージ以外のクラスはなかった可能性が非常に高いです。

Java.netも利用可能な最初のパッケージの1つであり、特にスレッド機能に関しては、最初から素晴らしいものでした(現在のThreadモデルは、最近の言語に比べて古くなっていますが、当時は素晴らしかったです)。

新しく公開された1.02と、その直後に完全なWebアプリケーションサーバー(まだ業界で使用されています)を学ぶために、Webブラウザー(当時存在していたものに比べても非常に不完全)をコーディングしたことを覚えています。これは、サーブレットAPIや、Javaで高速で信頼性の高いhttpアプリケーションを作成するには重いフレームワークを使用する必要があると説得されるずっと前のことでした。

Java.net(およびGC、スレッド、および例外とJava.util)を使用すると、Javaは主要なテクノロジサーバー側にバインドされました(反対側では、Java.appletは最初の日...)

1
Denys Séguret

Java 1.0には、Java.applet、Java.awt(サブパッケージJava.awt.imageおよびJava.awt.peerを含む)、Java.io、Java.lang、Java.net、およびJava.utilの6つの最上位パッケージがありました。それでおしまい。出典:Patrick Chan、Java Developers Almanac 1998

0
mrzzmr