JDK / JRE / JVM / Java SDK | Что они все значат? Иногда вы можете развиваться с JRE, а иногда вам нужен JDK? - PullRequest
27 голосов
/ 17 февраля 2010

Честно говоря, я совершенно запутался во всех этих терминах (JDK / JRE / Java SDK). Я не уверен, что каждый из них делает.

Когда я впервые начал делать простые примеры Java в Eclipse, я почти уверен, что у меня был только JRE, который, как я полагал, был стандартным установщиком Java, который используют обычные пользователи, чтобы иметь возможность запускать программы / апплеты Java в своей системе.

Однако теперь в классе мы используем Google Appengine, и для этого требуется JDK, который, как я предполагаю, такой же, как Java SDK. Потратив некоторое время на выяснение того, что установка JDK означала, что мне также пришлось добавить java / bin к переменным окружения, чтобы заставить javac -version работать в командной строке, я обнаружил, что только JDK имеет javac ...

Как мои ранние java-программы работали без установки JDK и, следовательно, без javac? И действительно главный вопрос ... В чем разница между JRE и JDK, и когда вы используете каждый из них?

Спасибо:)

Ответы [ 5 ]

35 голосов
/ 17 февраля 2010

JRE = Java Runtime Environment - то, что вам нужно для запуска программ / программ, которые требуют Java или используют библиотеки, написанные на Java. Например, OpenOffice требует среды выполнения Java

JDK / Java SDK = Java Development Kit / Java Software Development - то, что вам нужно для написания программ, которые требуют Java или используют библиотеки, написанные на Java. Например, если вы хотите написать свой собственный инструмент для обработки текстов на Java.

java поставляется с JRE, потому что он запускает виртуальную машину (виртуальную машину). Он может принимать class файлов, которые являются файлами, скомпилированными с использованием JDK.

JDK поставляется с javac, потому что это то, что вам нужно для компиляции ваших файлов .java в .class файлы, которые затем могут быть запущены на JRE.

17 голосов
/ 17 февраля 2010

Eclipse имеет свой собственный встроенный компилятор (называемый ecj), что, вероятно, является причиной, по которой вы можете избежать использования JDK для его использования. Он не использует javac.

Google App Engine использует javac, поставляемый с JDK.

3 голосов
/ 17 февраля 2010

В чем разница между JRE и JDK и когда вы используете каждый из них?

JRE : среда выполнения Java. Он используется только для запуска программ на Java. * * * * * * * * * * * * * * * * * * * * * * Eclipse имеет встроенный компилятор. Вот почему вы просто нуждались в JRE (для запуска затмения)

Если вы отправляете программу на Java, единственное, что нужно клиенту, это среда выполнения

JDK : Java Develpment Kit, он также включает в себя JRE, но дополнительно имеет другие инструменты для разработки программ, такие как компилятор Java javac и многие другие.

Если вы хотите создать Java-программу, вы должны использовать это.

2 голосов
/ 17 февраля 2010

Вы никак не могли использовать JRE для компиляции программ на Java. javac, компилятор Java, поставляется только с JDK.

  • Вы можете писать программы на Java с любым текстовым редактором, для этого вам не нужно ничего особенного.
  • Вам нужна JRE для запуска программ на Java. JRE включает виртуальную машину Java, необходимую для запуска уже скомпилированных программ Java.
  • Вам нужен JDK для компиляции программ на Java. Поэтому, если вы являетесь разработчиком Java, вы можете установить только JDK, поскольку он поставляется с инструментами, необходимыми для компиляции, в дополнение к виртуальной машине Java.
1 голос
/ 17 февраля 2010

'Иногда вы можете развиваться с jre'

Нет. Никогда.

Вы разрабатываете с помощью Java Development Kit. Вы работаете с Java Runtime Environment или Engine или как там это называется.

...