Я установил Oracle JDK в /usr/jdk/jdk1.8.0_25 и установил этот каталог в JAVA_HOME. JAVA_HOME/bin содержит исполняемый файл java, а JAVA_HOME/jre/bin содержит другой исполняемый файл java. В руководстве, которое я последовал, добавили JAVA_HOME/bin и JAVA_HOME/jre/bin в PATH, но который является правильным исполняемым файлом для использования и который будет использоваться, если я вызову java из командной строки?JDK java executable vs JRE executable
ответ
Вот упрощенный обзор различий между JDK и JRE
JRE означает J AVA R untime Х nvironment: он содержит только двоичные файлы для запуска Java программ
JDK означает J AVA D АЗВИТИЕ К его: он содержит двоичные файлы для запуска Java программы + двоичные файлы для компиляции исходного кода Java (и производить программу Java).
JDK всегда содержит JRE внутри (в директории <JDK_HOME>/jre
)
Основное различие между JRE и JDK является Javac программа. (Javac означает явас ompiler) (вы также можете найти некоторые другие программы под <JDK_HOME>/bin
, которые не присутствуют при <JDK_HOME>/jre/bin
: все они могут быть полезны, чтобы сделать развитие Java - но в большинстве случаев - бесполезно для запуска программы Java
Все программы, которые находятся в обоих местах (т.е. <JDK_HOME>/bin
и <JDK_HOME>/jre/bin
) являются одинаковыми, так что это не очень важно сделать различие
чтобы точно ответить на ваш вопрос.. : java экземпляр, который будет запускаться при выполнении командной строки, начиная с . Java - это первый экземпляр java, найденный в вашей системной переменной PATH ... так же, как и любая другая программа.
Что бы ни было в пути для java - JAVA_HOME/bin или JAVA_HOME/jre/bin.
Если вы посмотрите на структуру папок, где установлена jdk/jre, вы увидите, что в папке jdk/bin имеется довольно набор двоичных файлов, таких как java, javac, javap и т. Д. JRE будет включать java но не javac, javap и т. д. Я предполагаю, что это Linux, и вы загрузили сжатый архив и извлекли его.
Если вы действительно любознательны, то вы можете написать это в командной строке:
where java
Это даст точное местоположение исполняемого файла. На моем компьютере это дает мне
C:\ProgramData\Oracle\Java\javapath\java.exe
, которая является мягкой ссылкой для выполнения системы по умолчанию java.exe
(в моем случае это C:\Program files\Java\jre 1.8.0_25\bin\java.exe
)
Возможный дубликат [Есть ли JRE и JDK для запуска файла jar?] (Http://stackoverflow.com/questions/12261128/is-both-jre-and-jdk-needed-to-run-a -jar-файл) – 030