web-dev-qa-db-ja.com

default-jdk、ecj、gcj、openjdkの違いは何ですか?

今朝、私は何かをインストールしようとしましたが、次のようなステートメントに出会いました。

The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: Sudo apt-get install <selected package>

Default-jdk、ecj、gcj、openjdkの違いは何ですか?

前もって感謝します。

23
rɑːdʒɑ

default-jre

これはopenjdk-7-jreに依存するシンプルなパッケージです(したがって、基本的にopenjdk-7と同等です) -jre)およびdefault-jre-headless。 OpenJDK 7 JREである「標準JavaまたはJava互換ランタイム」をインストールします。

このパッケージは、i386アーキテクチャ用に推奨されるJavaランタイム、またはJava互換ランタイムを指します。これは、i386のopenjdk-7-jreです。

パッケージ情報
パッケージの依存関係(生意気)

ecj

これは「スタンドアロンEclipse Javaコンパイラ」です。これをインストールしても、Eclipseはstandaloneパッケージであるためインストールされません(以下の依存関係リンクを参照)。 「Eclipseの一部として配布されるEclipse JDTコンパイラのスタンドアロンバージョン」が含まれており、Java 1.3〜1.7と互換性があります。

このパッケージは、Eclipseの一部として配布されるEclipse JDTコンパイラーのスタンドアロンバージョンを提供します。 JCK(Java Compatibility Kit)に合格し、Java 1.3、1.4、1.5、1.6、1.7と互換性があります。

パッケージ情報
パッケージの依存関係(生意気)

gcj-4.6-jdk

(gcj-4.7-jdkは同じですが、Java 7の場合)

これは、JavaバイトコードとソースファイルをネイティブにコンパイルするGCCコンパイラのフロントエンドです。

GCJは、Java(tm)ソースとバイトコードファイルの両方をネイティブにコンパイルできるGCCコンパイラのフロントエンドです。コンパイラはクラスファイルも生成できます。このパッケージには、クラスパスの他のJava開発ツールが含まれています。

パッケージには、ラッパースクリプトとシンボリックリンクのコレクションも含まれています。 GCJツールセットにJava-SDKのようなインターフェイスを提供することを目的としています。

これは、クローズドソースのOracle Javaコンパイラに代わるオープンソースの代替手段であることを意味していました。現在はほとんど陳腐で古くなっている(更新されていない)ようです。以下のリンク(特にGCJホームページの最後の更新)を参照してください。

パッケージ情報

GNUのJava Compiler(GCJ)dead?-Stack Overflow
gnu.orgのGCJホームページ (更新:リンクは削除されましたが、 GCJ wikiはまだ利用可能です

openjdk-6-jdk

(openjdk-7-jdkは同じですが、Java 7の場合)

Javaプラットフォームのオープンソースバージョン。
から Wiki

OpenJDKプロジェクトの主な目標は、Java SEプラットフォーム(6および7)のオープンソース実装を作成することです。これはUbuntuが使用するJavaのデフォルトバージョンであり、インストールが最も簡単です。

パッケージの概要:

OpenJDKは、Javaプログラミング言語を使用して、アプリケーション、アプレット、およびコンポーネントを構築するための開発環境です。

パッケージは、IcedTeaビルドサポートとIcedTeaプロジェクトのパッチを使用してビルドされます。

パッケージ情報


また、Oracle Java(デフォルトのリポジトリにないため)については質問に記載されていません。完全性のために以下にリストします。

Oracle-Java7-installer

Web Up8 PPA のパッケージ名、Oracleが.tar.gzで配布)

Oracle(以前はSun)によるJavaのクローズドソース「公式」実装。ライセンスの問題のため、公式リポジトリではホストされていません。 Web Up8によって、ダウンロードしてインストールするスクリプトとして利用可能になりました。

インストール方法-Web Up8

16
kiri

同じ問題がありました。私が見つけたのは、彼らがお互いに違いを持っ​​ているということです。

default-jdkopenjdkは両方とも、同じJava AP​​Iコードを持っているため、より多くの類似です。しかし、違いはターゲットプラットフォーム

  • openjdk:最も多いstable one。 すべてのプラットフォームのために設計されました。基本的にはOpen-sourceプラットフォームを対象としています。

  • default-jdk:not stableです。特定のターゲットプラットフォームを目指して設計されました。基本的にはClosedプラットフォームを対象としています。

しかし、他のものは完全に異なります:それらは単なるコンパイラです。彼らが来たのは、最初はJavaがオープンソースで利用できなかったからです。 Eclipseなどの特定のコンパイラのみがリリースされました。

  • gcj -jdk:(Java用GNUコンパイラ)。これはコンパイラですfor GNUのJava(Javaで使用)

  • ecj:(Eclipse Java Compiler)Eclipseで使用されるJavaコンパイラーです。

このecjはJava Evolutionary Computation ToolkitであるECJではありません

4
user224082