JDKとJavaSDKの違い


85

これらの2つの用語の間に実質的な違いはありますか?JDKは、SDK(Software Development Kit)のサブセットであるJava DevelopmentKitの略であることを理解しています。ただし、Java SDKを指定すると、JDKと同じ意味になります。

回答:


97

このウィキペディアのエントリから:

JDKは、一般的な意味でソフトウェア開発キット(SDK)として大まかに定義されているもののサブセットです。Sunは、Java SE、EE、およびMEの最近のリリースに付随する説明の中で、それらの用語の下で、JDKがJavaプログラムの作成と実行を担当するSDKのサブセットを形成することを認めています。SDKの残りの部分は、アプリケーションサーバー、デバッガー、ドキュメントなどの追加のソフトウェアで構成されています。

「追加のソフトウェア」は、Glassfish、MySQL、およびNetBeansのようです。このページでは、Java EESDK用に入手できるさまざまなパッケージの比較を示します。


SDKのパッケージには(!)が含まれていますか?JDKの「パッケージ」ですか?
Royi Namir 2014

はい、JREはJDKに含まれています。JDKソフトウェア開発キット(SDK)です。
jamesh 2015

33

はい、SDKとJDKには違いがあります。ほとんどの人は、JavaプラットフォームがJava言語でプログラムを開発するためだけに使用されているのではないことを忘れています。JVMは他のいくつかの言語もサポートしています。したがって、SDKは、Clojure、Groovy、Scala、JRubyなどのさまざまな言語でのソフトウェア作成をサポートするソフトウェアの汎用バンドルです。JDKは、Java言語でソフトウェアを開発するための特定のバンドルであり、そのためのすべてのJava標準APIが含まれています。(私は実際には英語を話さないので、私はそれをうまく説明したと思います)


26

JDKはJava用のSDKです。

SDKは「ソフトウェア開発キット」の略で、コードをより簡単、効果的、効率的に記述できるようにする開発者ツールです。SDKはさまざまな言語に対応しています。これらは、プログラマーの作業を容易にする多くのAPI(アプリケーションプログラミングインターフェイス)を提供します。

ここに画像の説明を入力してください

SDK for Javaは、Java DevelopmentKitであるJDKと呼ばれます。つまり、SDK for Javaと言うことで、実際にはJDKを指していることになります。

あなたがJavaに不慣れであると仮定すると、あなたが出くわす別の用語があります-JRE、Javaランタイム環境の頭字語。JREは、Javaで記述されたソフトウェアプログラムを実行しようとするときに必要なものです。

Javaはプラットフォームに依存しない言語です。JREは、JVM(Java仮想マシン)を実行します。これにより、JVMが使用可能な任意のプラットフォームでソフトウェアを実行できます。


1
JREが図のどこに当てはまるかを明確にしてください。
vikramvi 2017

JREはJDKの内部にうまく組み込まれている場合もあれば、実行している内容に応じてスタンドアロンにすることもできます。これはランタイムであるため、アプリケーションを構築する場合はJDK内にありますが、アプリケーションを実行する場合はスタンドアロンであるため、この図はあまり意味がありません。
raj2 4019

jdkがjavaのSDKであると確信していますか?java seを考えると、それは本当かもしれませんが、javaeeとjavameの場合、Oracleが提供するSDKだけを見てきました。それで、あなたはそれについて本当に確信していますか?
user12208242

画像は私と話している:)
noyan6

5

Java EE 6 SDKインストーラーから取得したもので、JDK以外にSDK6に含まれるものを示しています。

JDK以外にSDK6に含まれるもの


3

Sunは、明白な理由もなく、名前を変更するのが好きです。SunOS / Solarisの3つの異なる番号付けスキーム、またはJavaの2つの番号付けスキームを見てください。Java 1.6、Java 2バージョン6、またはJava 6ですか?


3

JDK(Java Development Kit)はSDK(Software Dev Kit)です。

これは、Javaでソフトウェア/アプリケーションを構築するために使用され、もちろん、そのソフトウェアを実行するためのJRE(Java Runtime Edition)が含まれています。Javaアプリケーションを実行するだけの場合は、JREのみをダウンロードしてください。

ちなみに、Java EE(Enterprise Edition)には、WEB環境向けのアプリを構築するための「メソッド(関数)付き」クラスのパッケージとモバイルデバイス向けのJava ME(Micro Edition)のライブラリが含まれています。興味のある方は(Java ME)、GoogleのAndroidDevKitとAPIをご覧になることをお勧めします。

ここを見てみましょう:それはより多くのビットを説明するつもりだ... http://www.oracle.com/technetwork/java/archive-139210.html


2

JDKには、Javaプログラムの開発と実行に使用されるツールのコレクションが付属しています

それらが含まれます:

  1. appletviewer(Javaアプレットを表示するため)

  2. javac(Javaコンパイラ)

  3. java(Javaインタープリター)

  4. javap(Javaディスアセンブラ)

  5. javah(Cヘッダーファイル用)

  6. javadoc(HTMLドキュメントの作成用)

  7. jdb(Javaデバッガー)

一方、SDKには、JDKで使用可能なツールを含む他の多くのツールが付属しています。

http://parvindersingh.webs.com/apps/forums/topics/show/8853125-solved-java-difference-between-jdk-and-sdk-


1

JDKとJavaSDKに違いはありません。どちらも同じ意味です。JDKからJavaSDKに切り替えることはSunでのPRの決定だったと思います。今のところ、JDKに戻っていると思います。


1

私の見解では、JavaのJDKとSDKの間に違いはありません。すべての開発ツールとその両方の機能を見つけることができます。これは、sunによって提供される単なるエイリアスです。


1

この質問の最良の例、SDK-ソフトウェア開発キット-例:Netbeans JDK-Java開発キット(これはJavaコンパイラです)。JDKがないと、SDKでJavaプログラムを実行できません。


1

違いはありません。

Sunのマーケティング部門が「tm」と用語に夢中になる前は、Javaソフトウェア開発キット(Java SDK)はJava開発キット(JDK)と呼ばれていました。政治的な理由と正気のために、彼らは意味のある名前(jdk)とバージョン(1.2 / 1.3 / 1.4 1.5 / 1.6)を「エンジニアリング」用語と呼んでいます。マーケティング用語は、「Java2プラットフォーム」(別名jdk 1.2から1.4)またはJava5(別名jdk 1.5)またはJava6(別名jdk1.6)です。考えているだけで頭痛がします。


0

jdkには、特定のフレームワークと一緒に使用できる特定の機能があると思います。全体としてSDKと呼んでください。

AndroidやBlackberryと同様に、どちらもフレームワークとともにJavaを使用します。


-1

私の最初の推測では、Java SDKはJVMを構築するためのものであり、JDKはJVMのアプリ構築するためのものです。

編集:これは現時点では正しくないようですが。SunはJVMをオープンソーシングしている最中なので(おそらく、今は終了しているかもしれません)、私の答えが正しければ、それほど驚かないでしょう...しかし、現時点では、SDKとJDKは同じものです。


申し訳ありませんが、JVMを構築するとはどういう意味ですか?
フアン・カルロス・ブランコ・マルティネス

Javaアプリケーションは、Java仮想マシン内で実行されます。一般に公開されているJREの一部であるため、Java SDKは、プラットフォーム用のJREを構築するのに役立ちます。
オリ

申し訳ありませんが、このステートメントはどこから入手しましたか(Java SDKは、プラットフォーム用のJREを構築するのに役立ちます)。私はあなたを理解していないか、それがJavaSDKのターゲットではないと思います。Java SDKのは... JREとjavac、てjavap、Javadocなどいくつかのツールによって形成される
フアン・カルロス・ブランコ・マルティネス

-1

JavaSEとJavaEEの2つの製品があります。EEは、Webアプリケーションの開発と実行を可能にするWebアプリケーション/エンタープライズエディションです。SEは、EEの詳細が含まれていないプレーンなJava製品ですが、EEのサブセットです。SEには、JDKとJREの2つのタイプがあります。

明らかではないかもしれない大きな違いが1つあり、それがすべてのオペレーティングシステムに適用されるかどうかはわかりませんが、WindowsではJREにはサーバーHotSpot JVMがなく、クライアント1つだけ、JDKには両方があります。私は他のすべてのOSがJDKとJREの両方を持っていることを知っています。本当の違いは、JDKにはJavaコンパイラが含まれていることです。つまり、JDKではソースコードからJavaをコンパイルして実行できますが、JREではJavaバイトコード、つまりすでにコンパイル済みのソースのみを実行できます。はい、新しいバージョンには、NetBeansエディタ環境やJava in memoryデータベース(derby / cloudscape)など、いくつかの追加コンポーネントがバンドルされていますが、これらはオプションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.