Różnice między JDK i Java SDK

85

Czy jest jakaś istotna różnica między tymi dwoma terminami? Rozumiem, że JDK oznacza Java Development Kit, który jest podzbiorem SDK (Software Development Kit). Ale określenie Java SDK powinno oznaczać to samo, co JDK.

Juan Carlos Blanco Martínez
źródło

Odpowiedzi:

97

Z tego wpisu w Wikipedii :

JDK jest podzbiorem tego, co jest luźno zdefiniowane jako zestaw do tworzenia oprogramowania (SDK) w sensie ogólnym. W opisach dołączonych do ich ostatnich wydań dla Java SE, EE i ME firma Sun przyznaje, że zgodnie z ich terminologią JDK stanowi podzbiór SDK, który jest odpowiedzialny za pisanie i uruchamianie programów w języku Java. Pozostała część SDK składa się z dodatkowego oprogramowania, takiego jak serwery aplikacji, debugery i dokumentacja.

„Dodatkowym oprogramowaniem” wydaje się być Glassfish, MySQL i NetBeans. Ta strona zawiera porównanie różnych pakietów, które można pobrać z zestawu Java EE SDK.

Jamesh
źródło
Czy SDK zawiera (!) W swoim pakiecie - "pakiet" JDK?
Royi Namir
Środowisko JRE jest zawarte w JDK, tak. JDK to zestaw do tworzenia oprogramowania (SDK).
jamesh
33

Tak, istnieje różnica między SDK a JDK. Większość ludzi zapomina, że ​​platforma Java służy nie tylko do tworzenia programów w języku Java. JVM obsługuje również inne języki. Tak więc, wyjaśniając, SDK to ogólny pakiet oprogramowania, który obsługuje tworzenie oprogramowania w różnych językach, takich jak Clojure, Groovy, Scala, JRuby i inne. JDK to specyficzny pakiet do tworzenia oprogramowania w języku Java, zawierający wszystkie standardowe API języka Java. (Mam nadzieję, że dobrze to wyjaśniłem, ponieważ tak naprawdę nie mówię po angielsku)

JavaBrazil
źródło
26

JDK to zestaw SDK dla języka Java.

SDK to skrót od „Software Development Kit”, narzędzia programistycznego, które umożliwia pisanie kodu z większą łatwością, skutecznością i wydajnością. Pakiety SDK są dostępne w różnych językach. Zapewniają wiele interfejsów API (interfejsów programowania aplikacji), które ułatwiają pracę programisty.

wprowadź opis obrazu tutaj

Pakiet SDK dla języka Java nosi nazwę JDK, czyli zestaw Java Development Kit. Więc mówiąc SDK for Java, tak naprawdę masz na myśli JDK.

Zakładając, że dopiero zaczynasz przygodę z Javą, jest jeszcze jeden termin, z którym się spotkasz - JRE, skrót od Java Runtime Environment. JRE to coś, czego potrzebujesz, gdy próbujesz uruchamiać programy napisane w języku Java.

Java jest językiem niezależnym od platformy. Środowisko JRE obsługuje maszynę JVM, wirtualną maszynę Java, która umożliwia uruchamianie oprogramowania na dowolnej platformie, dla której dostępna jest maszyna JVM.

Arnold Laishram
źródło
1
Proszę wyjaśnić, gdzie na diagramie mieści się środowisko JRE?
vikramvi
JRE działa dobrze w JDK lub może być samodzielnym, w zależności od tego, co robisz. Jest to środowisko uruchomieniowe, więc kiedy tworzysz aplikację, pojawia się ona w JDK, ale gdy tylko uruchamiasz aplikację, jest ona samodzielna, w takim przypadku ten diagram nie ma większego sensu.
raj240
Czy na pewno jdk to sdk Java? Biorąc pod uwagę java se, może to być prawda, ale w przypadku java ee i java me widziałem tylko SDK dostarczone przez Oracle. Więc czy naprawdę jesteś tego pewien?
user12208242
obraz rozmawia ze mną :)
noyan
5

Zaczerpnięty z instalatora Java EE 6 SDK, pokazuje, co zawiera pakiet SDK 6 oprócz JDK:

Co zawiera SDK 6 oprócz JDK

Crenguta S
źródło
3

Sun po prostu lubi zmieniać nazwy rzeczy bez wyraźnego powodu. Spójrz na trzy różne schematy numeracji dla SunOS / Solaris lub dwa schematy numeracji dla Javy. Czy to Java 1.6, Java 2 w wersji 6 czy Java 6?

Paul Tomblin
źródło
3

JDK (Java Development Kit) to SDK (Software Dev Kit).

Służy do tworzenia oprogramowania / aplikacji w Javie i oczywiście obejmuje JRE (Java Runtime Edition) do wykonywania tego oprogramowania. Jeśli chcesz tylko uruchomić aplikację Java, pobierz tylko środowisko JRE.

Nawiasem mówiąc, Java EE (Enterprise Edition) zawiera biblioteki pakietów klas „z metodami (funkcjami)” do budowania aplikacji na środowisko WEB oraz Java ME (Micro Edition) na urządzenia mobilne. Jeśli jesteś zainteresowany tym (Java ME), polecam przyjrzeć się Google Android DevKit i API.

Spójrz tutaj: wyjaśni nieco więcej .. http://www.oracle.com/technetwork/java/archive-139210.html

leonardolabolida
źródło
2

JDK zawiera zbiór narzędzi używanych do tworzenia i uruchamiania programów w języku Java ,

Zawierają:

  1. appletviewer (do przeglądania apletów Java)

  2. javac (kompilator Java)

  3. java (interpreter Java)

  4. javap (dezasembler Java)

  5. javah (dla plików nagłówkowych C)

  6. javadoc (do tworzenia dokumentów HTML)

  7. jdb (debugger Java)

Podczas gdy SDK zawiera wiele innych narzędzi, w tym narzędzia dostępne w JDK.

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

Parvinder Singh
źródło
1

Nie ma różnicy między JDK i Java SDK. Obaj mają na myśli to samo. Myślę, że przejście z JDK na Java SDK było decyzją PR w firmie Sun. Myślę, że na razie wraca do JDK.

Nikhil Kashyap
źródło
1

Z mojego punktu widzenia nie ma różnicy między JDK i SDK w java. W obu możemy znaleźć wszystkie narzędzia programistyczne, a także udogodnienia. to tylko alias dostarczony przez słońce.

Alok Kumar Sahoo
źródło
1

Najlepszy przykład na to pytanie, SDK - Software Development Kit - Ex: Netbeans JDK - Java Development Kit (to jest kompilator Java). Bez JDK nie możemy uruchamiać programów Java w SDK.

Thirumal
źródło
1

Nie ma różnicy.

Java Software Development Kit (Java SDK) była nazywana Java Development Kit (JDK), zanim dział marketingu firmy Sun oszalał na punkcie „tm” i terminologii. Ze względów politycznych i dla rozsądku nazywają znaczące nazwy (jdk) i wersje (1.2 / 1.3 / 1.4 1.5 / 1.6) terminami „inżynierskimi”. Terminy marketingowe to „platforma Java2” (aka jdk 1.2 do 1.4), Java5 (aka jdk 1.5) lub Java6 (aka jdk1.6). Kiedy o tym myślę, boli mnie głowa.

mravmrav
źródło
0

Myślę, że jdk ma pewne cechy, które mogą być używane wraz z określonym frameworkiem. Cóż, nazwij to SDK jako całość.

Podobnie jak Android i Blackberry, oba używają javy wraz ze swoją strukturą.

dkumar
źródło
-1

Domyślam się, że Java SDK służy do budowania JVM, a JDK do tworzenia aplikacji dla JVM.

Edycja: Chociaż w tej chwili wygląda to na niepoprawne. Firma Sun jest w trakcie otwierania JVM (być może nawet skończyli, teraz), więc nie zdziwiłbym się zbytnio, gdyby moja odpowiedź była prawidłowa ... Ale w tej chwili SDK i JDK to to samo.

Oli
źródło
Przepraszam, co masz na myśli mówiąc o tworzeniu maszyny JVM?
Juan Carlos Blanco Martínez
Aplikacje Java działają wewnątrz wirtualnej maszyny języka Java. Część środowiska JRE, która jest obecnie udostępniana publicznie, więc pakiet Java SDK byłby przydatny do tworzenia środowisk JRE dla swoich platform.
Oli,
Przepraszam, skąd masz to oświadczenie (zestaw Java SDK byłby przydatny do tworzenia środowisk JRE dla ich platform)? Myślę, że albo cię nie rozumiem, albo to nie jest celem Java SDK. Java SDK jest tworzony przez JRE i niektóre narzędzia, takie jak Javac, javap, javadoc ...
Juan Carlos Blanco Martínez
-1

Istnieją dwa produkty JavaSE i JavaEE. EE to aplikacja internetowa / edycja korporacyjna, która umożliwia tworzenie i uruchamianie aplikacji internetowych. SE to zwykły produkt Java, który nie ma specyfiki EE, ale jest podzbiorem EE. SE występuje w dwóch typach: JDK i JRE.

Jest jedna duża różnica, która może nie być oczywista i nie jestem pewien, czy dotyczy to wszystkich systemów operacyjnych, ale pod Windows JRE nie ma serwera HotSpot JVM, tylko klient, JDK ma oba i o ile Wiem, że wszystkie inne systemy operacyjne mają zarówno JDK, jak i JRE. Prawdziwą różnicą jest to, że JDK zawiera kompilator Javy, czyli JDK pozwala na kompilację i uruchamianie Javy z kodu źródłowego, podczas gdy JRE pozwala tylko na uruchamianie kodu bajtowego Javy, czyli źródła, które zostało już skompilowane. I tak, nowsze wersje zawierają szereg dodatkowych komponentów, takich jak środowisko edytora NetBeans i baza danych Java w pamięci (derby / cloudscape), ale są one opcjonalne.

Donal Tobin
źródło