Разное

Javac java: Компиляция в Java

Содержание

Classpath — Java программирование | ExamClouds

В большинстве случаев команды java и javac должны найти другие классы необходимые для компиляции и выполнения. Самый распространенный случай — это использование классов входящих в Java SE. Или, например, нам нужно скомпилировать и запустить класс, который использует другие классы, не входящие в Java SE.

Команды java и javac используют следующий алгоритм поиска:

  1. Они используют один и тот же список каталогов, в которых ищут необходимые файлы.
  2. Обе команды в процессе поиска просматривают список каталогов в одном и том же порядке.
  3. Как только необходимый класс найден, процесс поиска прекращается. Если список каталогов содержит два или более классов с одним и тем же именем, используется первый найденный.
  4. Первое место используемое в процессе поиска — это каталоги содержащие классы Java SE.
  5. Второе место — каталоги определенные в так называемом Сlasspath.

Classpath может быть задано двумя способами:

  1. Как переменная окружения CLASSPATH. Команды java и javac используют этот способ по умолчанию.
  2. Как ключ -classpath (или -cp) команд java и javac. Этот способ переопределяет список каталогов заданный переменной окружения, но только для конкретного вызова. Данный метод является более предпочтительным.

Рассмотрим использование ключа -cp используя классы first.Example1 и second.Example2, описанные здесь. Но предположим, что класс second.Example2 находится в другом проекте и доступны только его .class файлы. На рисунке изображена схема каталогов для данного примера:

Следующая команда будет использована для компиляции first.Example1 класса, где ключ -cp указывает на расположение .class файла second.Example2:

cd projectExample1
javac -d classes -cp . ./projectExample2/classes src/first/Example1.java

Для запуска программы используется команда:

cd projectExample1
java -cp classes;../projectExample2/classes first.Example1

Ключ -cp указывает расположение .class файла second.Example2 (как и при компиляции), а также путь для поиска .class файла first.Example1 — classes. 

Несколько важных правил при использовании ключа -cp:

  1. Ключ -cp может содержать несколько каталогов, разделенных точкой с запятой, как показано в примере при запуске команды java.
  2. Если указывается подкаталог, это НЕ означает что родительский каталог тоже входит в classpath. Например, для ключа -cp ../projectExample2/classes, каталог ../projectExample2 не будет входить в classpath.
  3. Если используется ключ -cp, то команды javac и java НЕ ищут классы в текущем каталоге по умолчанию. Для указания текущего каталога используется точка. Например:
    cd projectExample1/classes
    java -cp .;../../projectExample2/classes first.Example1​

  4. Если ключ -cp НЕ используется, компилятор вносит текущую рабочую директорию (.) в classpath. 
  5. Ключ -cp может содержать относительные и абсолютные пути.

Правка путей для Javac или настройка JDK на Windows » Nikulux

После успешной установки JDK перейдите в командную строку. Для этого у Вас есть два варианта:

  1. Нажмите сочетание клавиш Win+R -> введите «cmd» -> нажмите клавишу Enter -> откроется окно командной строки;
  2. Откройте меню пуск -> введите команду «cmd» -&gt в поле «Поиск»; дождитесь, пока Windows найдёт эту программу -> в получившемся списке поиска найдите программу с названием «cmd.exe» или «cmd» (зависит от настроек WIndows) -> кликните на эту программу -> откроется окно командной строки;

Теперь наберите команду «javac». Если вылезло много информации — это хорошо и в дальнейшей инструкции Вы не нуждаетесь.
Если же у Вас вылезла ошибка » «javac» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» — то читайте ниже.

Откройте «Мой компьютер» -> кликните правой клавишей мыши -> нажмите на вкладку «Свойства» -> слева найдите «Дополнительные параметры системы» -> кликните на эту надпись -> откроется новое окно.

Откроется данное окно:

Кликните на кнопку «Переменные среды…» и откроется такое окно:

В нижнем окне кликните один раз по строке, начинающейся словом «Path», и нажмите на кнопку «изменить». Откроется ещё одно окошечко:

Кликните по кнопке «Создать». В том месте, где курсор будет мигать, введите путь до папки «bin», находящейся в папке Java. Если Вы не изменяли путь установки при инсталляции JDK, то путь будет таким: «C:\Program Files\Java\jdk1.8.0_144\bin». Данную строку и нужно прописать в месте мигания курсора

Нажмите кнопку «ОК». На этом вся настройка путей Windows закончена. Лучше перезагрузите компьютер (но, может, этого и не понадобится, зависит от настроения WIndows).

Проверка

Теперь нужно убедиться, что всё работает верно. Откройте командную строку и наберите команду javac. Должен появиться длинный список.

Если всё так, то поздравляю!

Если не так, то проверьте, всё ли правильно сделано.

 

Таким нехитрым образом мы разобрались с темой: «Правка путей для Javac или настройка JDK на Windows»!

Javac не работает в командной строке Windows

Вопрос:

Я пытаюсь использовать javac с командной строкой Windows, но она не работает.

После добавления каталога "C:\Program Files\Java\jdk1.6.0_16\bin\" в конец переменной среды PATH команда java работает нормально, но использование javac выдает следующую ошибку:

«javac» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

Лучший ответ:

Если вы добавили его в панель управления во время открытой командной строки, это не повлияет на текущую командную строку. Вам нужно будет выйти и снова открыть или просто сделать:

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"

В порядке проверки выполните:

echo %path%

из командной строки и сообщите нам, что это такое.

В противном случае убедитесь, что в этом каталоге есть javac, попробовав:

"c:\program files\java\jdk1.6.0_16\bin\javac.exe"

из командной строки. Вы также можете указать, какой исполняемый файл (если есть) используется с командой:

for %i in (javac.exe) do @echo %~$PATH:i

Это аккуратный трюк, похожий на команды which и/или whence в некоторых операционных системах типа UNIX.

Ответ №1

ОС Windows ищет текущий каталог и каталоги, перечисленные в переменной среды PATH для исполняемых программ. Программы JDK (такие как Java-компилятор javac.exe и Java runtime java.exe) находятся в каталоге «\ bin» (где обозначает установленный каталог JDK, например C:\Program Files\Java\jdk1.8.0_xx). Вам нужно включить каталог «\ bin» в PATH.

Чтобы изменить переменную среды PATH в Windows XP/Vista/7/8:

  • Панель управления ⇒ Система ⇒ Расширенные настройки системы

  • Перейдите на вкладку «Дополнительно» ⇒ Переменные среды

  • В «Системные переменные» прокрутите вниз, чтобы выбрать «PATH» ⇒ Edit

((теперь перед тем, как продолжить, прочитайте следующие 3 раза, НЕТ UNDO))

В поле «Значение переменной» INSERT «c:\Program Files\Java\jdk1.8.0_xx\bin» (замените xx номером обновления и ПРОВЕРЬТЕ, что это ваш двоичный каталог JDK!!!) IN FRONT of все существующие каталоги, за которыми следует точка с запятой (;), которая отделяет двоичную директорию JDK от остальных существующих каталогов.
НЕ УДАЛЯЙТЕ любые существующие записи; в противном случае некоторые существующие приложения могут не работать.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Ответ №2

После долгого Google я узнал, что javac.exe будет внутри JDK(C:\Program Files\Java\jdk (номер версии)\bin), а не внутри JRE ( C:\Program Files (x86)\Java\jre7\bin) «JRE не поставляется с компилятором. Это (JRE) просто среда выполнения java. Вам нужен комплект разработки Java.» чтобы использовать компилятор javac

Javac не будет работать, если вы указываете bin внутри jre

Чтобы использовать javac в cmd, в вашей системе должен быть установлен JDK…

Для пути Javac

путь = C:\Program Files (x86)\Java\jre7\bin это неправильно

путь = C:\Program Files\Java\jdk (номер версии)\bin это правильно

Убедитесь, что файл «javac.exe» находится внутри вашего «C:\Program Files\Java\jdk (номер версии)\bin»

Не путайте с JRE и JDK, оба совершенно разные

если у вас нет JDK, пожалуйста, скачайте по этой ссылке http://www. oracle.com/technetwork/java/javase/downloads/index.html

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

Ответ №3

Я знаю, что это может быть не ваша конкретная ошибка, но у меня когда-то было ведущее место на моем пути, и java работал бы, но javac не стал бы.

Для чего это стоит, я предлагаю совет мудреца: «Осмотрите свой путь близко».

Ответ №4

Попробуйте решения здесь: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Их гораздо надежнее изменить — например, при обновлении JDK или JRE, поскольку нет жестко заданного пути.

Быстрое решение (если вы не хотите читать блог) —

C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
C:\>set PATH=%PATH%;%JAVA_HOME%

Затем вы можете добавить эти строки в скрипт запуска/входа.

Ответ №5

Я просто должен был сделать это, чтобы заставить это работать на Windows 7 64.

Откройте командную строку (cmd. exe) и введите:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

Удостоверьтесь, что вы снова открываете все текущее командное приглашение Windows, чтобы обновить переменную среды.

Ответ №6

Хорошо, что это не всегда так, но многие из нас сделали эту ошибку в прошлом, и немногие из них до сих пор не знают об этом, то есть каждый раз, когда вы добавляете путь (любой путь) любой среды переменная, вы, вероятно, попадете в пробел сразу после «точки с запятой» (как обычно, после «периода» при наборе текста в редакторе).

Это создаст ведущее пространство в пути, например «C:\Program Files\Java\jdk1.6.0\bin», и поэтому «javac.exe» не будет найден системой.

Ответ №7

Измените папку «jdk1.7.0_45» «jdk1_7_0_60» и обновите путь в среде Windows. В противном случае путь игнорирует точку на передней панели, которая обозначает скрытый файл, и поэтому папка не отображается в строках PATH.

Ответ №8

«; C:\Program Files\Java\jdk1.6.0\bin» иногда вы можете забыть поставить точку с запятой на последний существующий путь.

Ответ №9

У меня была такая же проблема, как и в этом названии. Java будет работать, но javac не будет в командной строке Windows (cmd.exe).

Для меня просто было место, когда я добавлял C:\Program Files\Java\jdk1.8.0\bin в конец моей переменной среды %PATH%.
Удалите пробел между ; и следующим путем.

Ответ №10

Я столкнулся с той же проблемой, что и java, но javac не будет в командной строке в Windows 8.

Проблема возникла из-за того, что я забыл удалить '>' в конце имени пути, т.е. это было так:

C:\Program Files\Java\jdk*\bin>

где он должен был быть таким:

C:\Program Files\Java\jdk*\bin

Ответ №11

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

Ответ №12

Убедитесь, что вы не разрешаете пробелы (пробелы) между путями в переменной Path. Моя проблема заключалась в том, что у меня было пустое пространство, и я полагаю, что Windows рассматривала его как NULL и не читала мой путь для Java.

Ответ №13

Я ценю, что это старый вопрос, но мое решение не было ответом здесь, поэтому отправляйте его, если кто-то еще попробует всех остальных.

В моем случае предыдущая установка Java JRE (в ProgramData/Oracle/Java) имела переменную пути в верхней части моего списка переменных пути. Содержимое этого пути «Oracle» имело java.exe, но не файл javac.exe.
Я добавил свой полный путь JDK к вершине списка переменных пути, опередив «Oracle», и затем взял javac.exe, а также java.

Ответ №14

for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME

это решение работало со мной

Ответ №15

Когда я пытался сделать .java для .class, команда Javac не работала. Я получил его, перейдя в C:\Program Files (x86)\Java\jdk1.7.0_04\bin, и когда я был в этом каталоге, я набрал Javac.exe C\Test\test.java, и он сделал класс с этим тактика. Попробуйте это.

Ответ №16

Дайте ему «C:\Program Files\Java\jdk1.6.0_16\bin». Удалите обратную косую черту, она будет работать

Java/Запуск программы — Викиучебник

Загрузка и установка пакета SDK или пакета JDK[править]

1. Загрузите нужную версию JDK компании Oracle Corporation (ранее Sun Microsystems) или последнюю версию SDK («Набор программиста») компании Sun Microsystems.
2. Установите её, следуя указаниям.

Подготовка пакета SDK или пакета JDK к работе[править]

Открытие окна системного ввода-вывода[править]

3. Теперь откройте окно «Командная строка» или окно «C:\windows\system32\cmd.exe«.
3.1. Открытие окна «Командная строка«:
3.1.1. Кликните левой кнопкой мыши на кнопке «Пуск«
3.1.2. В открывшемся меню первого уровня выберите строку «Все программы»
3.1.3. В открывшемся меню второго уровня выберите строку «Стандартные»
3.1.4. В открывшемся меню третьего уровня выберите строку «Командная строка» и кликните на ней левой кнопкой мыши, откроется окно «Командная строка» системного вывода-ввода с сообщениями:

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>_

, где «2» — имя пользователя.
3.2. Открытие окна «C:\windows\system32\cmd.exe«:
3.2.1. Открытие окна «C:\windows\system32\cmd.exe«. Способ 1.:
3.2.1.1. Кликните левой кнопкой мыши на кнопке «Пуск«, откроется окно «Запуск программы«
3.2.1.2. В открывшемся меню первого уровня выберите строку «Выполнить» и кликните на ней левой кнопкой мыши, откроется окно «Запуск программы«
3.2.1.3. В окне «Запуск программы«, в строке «Открыть:» введите cmd<OK>, откроется окно «C:\windows\system32\cmd.exe» системного вывода-ввода с сообщениями:

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>_

3.2.2. Открытие окна «C:\windows\system32\cmd.exe«. Способ 2.:
3.2.2.1. Нажмите одновременно две кнопки Win+R, откроется окно «Запуск программы«
3.2.2.2. В окне «Запуск программы«, в строке «Открыть:» введите cmd<OK>, откроется окно «C:\windows\system32\cmd.exe» системного вывода-ввода с сообщениями:

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>_

Указание пути к папке bin[править]

4. Для удобства пропишите в path путь к папке bin пакета SDK или JDK, для этого введите системную команду с указанием пути к папке bin, например:
path c:\Program Files\Java\jdk1.7.0\bin

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>_

Вход в папку с исходным Java-кодом[править]

5. Зайдите в папку с исходными кодами, для этого введите системную команду перехода к другому подкаталогу CD с указанием пути к подкаталогу с файлом исходного кода, например:
cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>_

Компиляция исходного Java-кода в байт-код[править]

6. Компилируйте файлы *.java, получая *.class. Например: javac MyTest.java или javac HelloWorld.java

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>javac HelloWorld.java

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>_

Запуск байт-кода[править]

7. Запустите класс, где есть функция public static void main(…). Например: java -cp . MyTest или java HelloWorld

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>javac HelloWorld.java

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>java HelloWorld
HelloWorld!

C:\Documents and Settings\2\Мои документы\Java\JavaShildt\HelloWorld>_

Запуск апплета в appletviewer’е[править]

Для запуска апплета в appletviewer’е с помощью команды cd <path> войдите в подкаталог (папку) в которой находятся файл запуска апплета в браузере *.html и файл апплета *.class, например, для апплета с именем Sample: Sample.html и Sample.class, и запустите аплетвьювер командой:

C:\Documents and Settings\2\Мои документы\Java\JavaShildt\HelloWorld>cd C:\Documents and Settings\2\Мои документы\Java\JavaShildt\643Sample
C:\Documents and Settings\2\Мои документы\Java\JavaShildt\643Sample>appletviewer Sample.html_

Установка Java в Linux | Losst

В этой статье речь пойдёт о проприетарной версии Java. Часто происходят ситуации, когда пользователь пытается открыть какую-либо программу на Java, а она либо вообще не запускается, либо пытается это сделать с помощью OpenJDK (Java Development Kit). Но вместо результата вы получаете кучу ошибок (как например с Minecraft). В данных ситуациях вам, скорее всего, поможет установка Java от Oracle.

Я вам расскажу, как установить JRE (Java Runtime Environment) и JDK (Java Development Kit)  8 версии на такие дистрибутивы, как Ubuntu, CentOS и Arch, а также как выбрать нужную среду по умолчанию.

Содержание статьи:

Чем отличается JDK от JRE

  • JRE — Java Runtime Environment — это среда выполнения Java. Предназначена для обычного использования. Позволяет запускать приложения, написанные на языке Java.
  • JDK— Java Development Kit — стандартная версия платформы Java, предназначенная для разработки. Это специальный пакет разработчика, в который входят документация, различные утилиты, компилятор, библиотеки классов, а также сама JRE.

Установка Java в Linux своими руками

JRE

Скачать архив с необходимой вам версией вы можете с официального сайта. Далее вам надо перенести его в желаемую директорию и распаковать. Рекомендую /opt/java, далее она и будет использоваться. Сделайте это, используя следующие команды:

sudo mv ~/путь/до/файла/jre*.tar.gz /opt/java

sudo tar -xzf /opt/java/jre*.tar.gz

Где «*» — версия Java.

JDK

Загрузите архив со средствами разработчки с официального сайта компании Oracle. Также перенесите его в желаемую директорию и распакуйте:

sudo mv ~/путь/до/файла/jdk*.tar.gz /opt/java

sudo tar -xzf /opt/java/jdk*.tar.gz

Установка Java в Ubuntu

JRE и JDK

Для установки проприетарной Oracle Java  вам необходимо добавить репозиторий, обновить индексы пакетов и установить Java. В Ubuntu, начиная с 18 релиза, это делается автоматически после добавления репозитория.

Внимание! Будут установлены как JRE, так и JDK. Сначала добавим репозиторий и обновим списки пакетов:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

В процессе установки необходимо будет принять лицензионное соглашение:

sudo apt-get install oracle-java8-installer

Установка Java в ArchLinux

JRE

В официальных репозиториях есть только OpenJDK. Поэтому придётся воспользоваться пакетом из AUR(вы можете, конечно, руками установить Java от Oracle, но AUR проще). Установка производится всего одной командой:

yaourt -S jre8

 

JDK

JDK так же можно установить, используя AUR. Просто выполните команду:

yaourt -S jdk8

Установка Java в CentOS

JRE

Для RHEL, Fedora, Cent OS, OpenSUSE есть официальный RPM-пакет, который вы можете скачать с официального сайта. Чтобы установить пакет из терминала, воспользуйтесь этой командой:

sudo rpm -i /путь/к/файлу/jre-*.rpm

где «*» — версия Java. Или же примените любую графическую утилиту.

JDK

Средства для разработчика вы можете скачать на сайте Oracle, ссылка на который есть в верху статьи. Для установки из терминала, используйте команду:

sudo rpm -i ~/путь/к/файлу/jdk-*.rpm

Где «*» — версия Java. «~» —  указывает, что путь начинается.

Выбор версии Java

Ubuntu

Для переключения на 8 версию Java используйте следующую команду:

sudo update-java-alternatives -s java-8-oracle

Чтобы автоматически установить переменные среды, воспользуйтесь командой:

sudo apt-get install oracle-java8-set-default

Или же вы можете установить альтернативы сами. Делается это с помощью следующих команд:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-oracle/bin/java 1

sudo update-alternatives --install /usr/bin/javaс javaс /usr/lib/jvm/java-8-oracle/bin/javaс 1

sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/java-8-oracle/bin/javaws 1

Теперь осталось выбрать версии исполняемых файлов java, javaws и javac, которые будут использоваться по умолчанию:

sudo update-alternatives --config java

sudo update-alternatives --config javac

sudo update-alternatives --config javaws

ArchLinux

Для начала просмотрите список установленных сред:

archlinux-java status

Затем установите необходимую вам:

archlinux-java set имя_среды

Пример:

archlinux-java set java-8-jre/jre

CentOS

Выбрать необходимую среду можно с помощью команд, данных ниже (так же, как и в Ubuntu). Вам нужно будет просто выбрать цифру, соответствующую номеру версии:

sudo update-alternatives --config java

sudo update-alternatives --config javac

sudo update-alternatives --config javaws

Настройка переменных окружения

Чтобы настройки были доступны для всех пользователей, будем использовать файл /etc/profile. Откройте его для редактирования любым текстовым редактором с помощью команды sudo и добавьте в конец следующие строки:

  1. export JAVA_HOME=/opt/java/jdk*/
  2. export JRE_HOME=/opt/java/jdk*/jre
  3. export PATH=$PATH:/opt/java/jdk*/bin:/opt/java/jdk*/jre/bin

Не забывайте! 

  • Вместо пути по умолчанию /opt/java укажите тот, который использовали;
  • Если вы используете не JDK, а JRE, то в пути у вас так же будет не «jdk*», а «jre*»;
  • «*» — версия Java, которая у вас установлена.

Выводы

В данной статье мы подробно разобрали процесс установки и настройки Java в различных дистрибутивах Linux. Если остались вопросы, спрашивайте в комментариях!

Установка и настройка Java

1- Download JDK

To download
Java, please visit the link below:

There are many versions of
Java, but I recommend you to download
Java version 11 because this is one that will be supported by
Oracle for a long time and is compatible with most relevant tools at this moment.

Вам нужно проверить вашу операционную систему, которая является 32bit или 64bit чтобы скачать подходящий
JDK.

Результаты скачивания:

2- Установка Java

Введите папку где будет установлен JDK, здесь я ввел:

  • C:\DevPrograms\Java\jdk-11.0.8\

3- Конфигурировать переменную среду для Java

Далее, мы конфигурируем переменную среду для Java.  Это необязательно, но если на вашем компьютере установлено много версий Java, то конфигурация это нужно, чтобы определить какая версия java используется по умолчанию.

Если вы используете Windows Vista или Windows 7:

На Desktop, нажмите на правую кнопку мыши на Computer, выберите
Properties.

Нажмите на 
New чтобы создать новую переменную среду с названием
JAVA_HOME.

Введите путь к папке JDK.

  • Variable name: JAVA_HOME
  • Variable value: C:\DevPrograms\Java\jdk-11.0.8

Далее измените переменную среду 
path

Добавьте впереди значения переменной среды 
path:

Вы успешно установили и конфигурировали Java.

Java SE — Загрузки | Технологическая сеть Oracle

Java SE 15

Java SE 15 — последний выпуск для платформы Java SE.


Ищете сборки Oracle OpenJDK?


  • Заказчики Oracle и независимые поставщики программного обеспечения, планирующие выпуски Oracle LTS:

    Oracle JDK — это поддерживаемая Oracle версия Java SE для клиентов и для разработки, тестирования, создания прототипов или демонстрации ваших приложений Java.

  • Конечные пользователи и разработчики, которым нужны бесплатные версии JDK:

    Oracle OpenJDK

    предлагает те же функции и производительность, что и Oracle JDK под

    Лицензия GPL

    .

Чтобы узнать больше об этих вариантах, посетите

Выпуски Oracle JDK для Java 11 и более поздних версий


Java SE 14

Java SE 14.0.2 — последняя версия платформы Java SE.

Java SE 11 (LTS)

Java SE 11.0.8 — последняя версия платформы Java SE 11.

Java SE 8

Java SE 8u261 — это последняя версия платформы Java SE 8.


Какой пакет Java мне нужен?


  • Разработчики программного обеспечения: JDK

    (Комплект разработчика Java SE): для разработчиков Java.Включает полный набор инструментов JRE плюс для разработки, отладки и мониторинга приложений Java.

  • Администраторы, запускающие приложения на сервере: Сервер JRE

    (Серверная среда выполнения Java): для развертывания приложений Java на серверах. Включает инструменты для мониторинга JVM и инструменты, обычно необходимые для серверных приложений, но не включает интеграцию с браузером (подключаемый модуль Java), автоматическое обновление или установщик.Учить больше


  • Конечный пользователь, использующий Java на настольном компьютере: JRE:

    (Среда выполнения Java): удовлетворяет большинство потребностей конечных пользователей. Содержит все необходимое для запуска приложений Java в вашей системе.
Релизы в раннем доступе

Версии раннего доступа

будущие выпуски JDK и JRE

доступны для тестирования.Эти выпуски раннего доступа включают будущие обновления и будущие основные выпуски. Эти выпуски лицензированы только для тестирования, а не для использования в производственной среде.

Дополнительные ресурсы

JDK Mission Control (JMC)

JDK Mission Control (JMC) позволяет отслеживать приложения Java и управлять ими без дополнительных затрат на производительность, обычно связанных с инструментами профилирования и мониторинга.

JDK Mission Control (JMC)

Консоль расширенного управления Java (AMC)

Консоль Advanced Management Console (AMC) позволяет администраторам отслеживать и управлять использованием Java в своей организации. AMC помогает администраторам управлять и настраивать, какая версия Java используется каждым приложением.

Консоль расширенного управления (AMC)

Инструмент обновления часовых поясов Java

Инструмент TZUpdater позволяет пользователю Oracle JDK или JRE вносить исправления в свою установку с использованием самых последних данных часового пояса.Учить больше

Средство обновления документации Java API 1.3

Средство обновления документации API Java восстанавливает на месте документацию API Java, созданную с помощью версий javadoc, включенных в JDK 5u45, 6u45, 7u21 и более ранние версии. Увидеть

Заметки о выпуске 7u25

для дополнительной информации.

Инструмент обновления документации Java API

Архив Java

В

Архив Java

предлагает доступ к некоторым из наших исторических выпусков Java.
ПРЕДУПРЕЖДЕНИЕ:

Эти более старые версии JRE и JDK предоставляются, чтобы помочь разработчикам устранять проблемы в старых системах.

Они не обновляются последними исправлениями безопасности и не рекомендуются для использования в производственной среде.

javac

@ имя файла

Считывает параметры и имена файлов из файла.Чтобы сократить или упростить команду javac , вы можете указать один или несколько файлов, которые содержат аргументы для команды javac (кроме параметров -J ). Это позволяет создавать команды javac любой длины в любой операционной системе. См. Файлы аргументов командной строки javac.

-Akey [= значение]

Задает параметры для передачи обработчикам аннотаций.Эти параметры не интерпретируются непосредственно javac , но доступны для использования отдельными процессорами. Значение ключа должно быть одним или несколькими идентификаторами, разделенными точкой (.).

- модуль add-modules, модуль

Задает корневые модули, которые необходимо разрешить в дополнение к начальным модулям, или все модули на пути к модулю, если модуль — это ALL-MODULE-PATH.

--boot-class-path путь или -bootclasspath path

Переопределяет расположение файлов классов начальной загрузки.

Примечание:

Это можно использовать только при компиляции для версий до JDK 9. Если применимо, см. Описания в --release , -source или -target .

--class-path путь , -classpath path или -cp path

Указывает, где найти файлы классов пользователей и обработчики аннотаций. Этот путь к классу переопределяет путь к классу пользователя в переменной среды CLASSPATH .

  • Если --class-path , -classpath или -cp не указаны, то путь к классу пользователя является текущим каталогом.

  • Если опция -sourcepath не указана, то путь к классу пользователя также ищется для исходных файлов.

  • Если параметр -processorpath не указан, то путь к классу также ищется для процессоров аннотаций.

-d каталог

Устанавливает целевой каталог для файлов классов. Если класс является частью пакета, то javac помещает файл класса в подкаталог, который отражает имя пакета, и создает каталоги по мере необходимости. Например:

  • Oracle Solaris, Linux и macOS: если вы укажете -d / home / myclasses и класс будет назван com.mypackage.MyClass , тогда файл класса /home/myclasses/com/mypackage/MyClass.class .

  • Windows: если вы укажете -d C: \ myclasses и класс будет называться com.mypackage.MyClass , тогда файл класса будет C: \ myclasses \ com \ mypackage \ MyClass.class .

Если опция -d не указана, то javac помещает каждый файл класса в тот же каталог, что и исходный файл, из которого он был сгенерирован.

Примечание:

Каталог, указанный параметром -d , не добавляется автоматически в путь к вашему классу пользователя.

- устаревание

Показывает описание каждого использования или переопределения устаревшего члена или класса.Без опции -deprecation javac показывает сводку исходных файлов, которые используют или переопределяют устаревшие члены или классы. Параметр -deprecation является сокращением для -Xlint: deprecation .

- включить предварительный просмотр

Включает языковые функции предварительного просмотра. Используется вместе с -источником или -release .

-encoding кодировка

Задает кодировку символов, используемую в исходных файлах, например EUC-JP и UTF-8. Если опция -encoding не указана, используется кодировка платформы по умолчанию.

-endorseddirs каталоги

Переопределяет местоположение одобренного пути к стандартам.

Примечание:

Это можно использовать только при компиляции для версий до JDK 9. Если применимо, см. Описания в --release , -source или -target .

-extdirs каталоги

Переопределяет расположение установленных расширений.Каталоги Переменная — это список каталогов, разделенных двоеточиями. В каждом файле JAR в указанных каталогах выполняется поиск файлов классов. Все найденные файлы JAR становятся частью пути к классу.

Если вы выполняете кросс-компиляцию, то этот параметр указывает каталоги, содержащие классы расширений. См. Параметры кросс-компиляции для javac.

Примечание:

Это можно использовать только при компиляции для версий до JDK 9.Если применимо, см. Описания в --release , -source или -target .

-g

Создает всю отладочную информацию, включая локальные переменные. По умолчанию генерируется только номер строки и информация об исходном файле.

-g: [строки, переменные, источник]

Создает только те виды отладочной информации, которые указаны в списке ключевых слов, разделенных запятыми.Допустимые ключевые слова:

строк

Отладочная информация по номеру строки.

варс

Информация об отладке локальной переменной.

источник

Информация об отладке исходного файла.

-g: нет

Не генерирует отладочную информацию.

-h каталог

Указывает, где разместить сгенерированные собственные файлы заголовков.

Когда вы указываете эту опцию, собственный заголовочный файл создается для каждого класса, который содержит собственные методы или имеет одну или несколько констант, аннотированных аннотацией java.lang.annotation.Native. Если класс является частью пакета, то компилятор помещает собственный файл заголовка в подкаталог, который отражает имя пакета, и создает каталоги по мере необходимости.

--help , –help или -?

Печатает краткий обзор стандартных опций.

--help-extra или -X

Печатает справку по дополнительным параметрам.

-implicit: [none, class]

Указывает, создавать ли файлы классов для файлов с неявной ссылкой:

Если этот параметр не указан, по умолчанию файлы классов создаются автоматически.В этом случае компилятор выдает предупреждение, если какие-либо файлы классов генерируются при обработке аннотаций. Предупреждение не выдается, если явно задана опция -implicit . См. Поиск типов.

-Joption

Передает опцию системе времени выполнения, где опция является одной из опций Java, описанных в javacommand.Например, -J-Xms48m устанавливает загрузочную память на 48 МБ.

Примечание:

Переменная среды CLASSPATH , параметр -classpath , параметр -bootclasspath и параметр -extdirs не указывают классы, используемые для запуска javac . Попытка настроить реализацию компилятора с этими параметрами и переменными рискованна и часто не дает желаемого.Если вам необходимо настроить реализацию компилятора, используйте параметр -J , чтобы передать параметры базовой программе запуска Java.

- модуль предельных модулей, модуль *

Ограничивает набор наблюдаемых модулей.

--module имя-модуля или -m имя-модуля

Компилирует только указанный модуль и проверяет отметки времени.

- путь-модуль или -p путь

Указывает, где найти модули приложения.

--module-исходный-путь модуль-исходный-путь

Указывает, где найти исходные файлы ввода для нескольких модулей.

- версия модуля

Задает версию компилируемых модулей.

-nowarn

Отключает предупреждающие сообщения. Эта опция работает так же, как опция -Xlint: none .

-параметры

Создает метаданные для отражения параметров метода. Сохраняет имена формальных параметров конструкторов и методов в созданном файле класса, чтобы метод java.lang.reflect.Executable.getParameters из Reflection API мог их получить.

-proc: [нет, только]

Управляет выполнением обработки и компиляции аннотаций. -proc: none означает, что компиляция выполняется без обработки аннотаций. -proc: only означает, что выполняется только обработка аннотаций без какой-либо последующей компиляции.

-процессор class1 [, class2, class3 ...]

Имена запускаемых процессоров аннотаций. Это обходит процесс обнаружения по умолчанию.

- путь к модулю-процессору

Задает путь к модулю, используемый для поиска обработчиков аннотаций.

- путь к процессору или - путь к процессору

Указывает, где найти обработчики аннотаций.Если этот параметр не используется, выполняется поиск процессоров в пути к классу.

-профильный профиль

Проверяет, доступен ли используемый API в указанном профиле.

Примечание:

Это можно использовать только при компиляции для версий до JDK 9.Если применимо, см. Описания в --release , -source или -target .

- выпуск

Компилируется с общедоступным, поддерживаемым и документированным API для конкретной версии виртуальной машины. Поддерживаемый выпуск Целями являются 7 , 8 , 9 , 10 , 11 и 12 .

Примечание:

При использовании --release для версии платформы Java, которая поддерживает модули, вы не можете использовать --add-modules для доступа к внутренним модулям JDK, а также не можете использовать --add-exports для доступа внутренние JDK API в модулях.

-с каталог

Задает каталог, используемый для размещения сгенерированных исходных файлов.Если класс является частью пакета, то компилятор помещает исходный файл в подкаталог, который отражает имя пакета, и создает каталоги по мере необходимости. Например:

  • Oracle Solaris, Linux и macOS: если вы укажете -s / home / mysrc и класс называется com.mypackage.MyClass , то исходный файл будет помещен в / home / mysrc / com / mypackage / MyClass.java .

  • Windows: если вы укажете -s C: \ mysrc и класс будет назван com.mypackage.MyClass , затем исходный файл помещается в C: \ mysrc \ com \ mypackage \ MyClass.java .

- исходный выпуск

Указывает версию принятого исходного кода. Для выпуска допустимы следующие значения:

Примечание:

Начиная с JDK 9, javac больше не поддерживает параметры выпуска -source , меньшие или равные 5 .Если используются параметры, меньшие или равные 5 , то команда javac ведет себя так, как если бы был указан -source 6 .

1,6

В Java SE 6 не было внесено никаких языковых изменений. Однако ошибки кодирования в исходных файлах теперь сообщаются как ошибки, а не как предупреждения, как это делалось в более ранних выпусках Java Platform, Standard Edition.

6

Синоним 1.6.

1,7

Компилятор принимает код с функциями, представленными в Java SE 7.

7

Синоним 1.7.

1,8

Компилятор принимает код с функциями, представленными в Java SE 8.

8

Синоним 1.8.

9

Компилятор принимает код с функциями, представленными в Java SE 9.

10

Компилятор принимает код с функциями, представленными в Java SE 10.

11

Компилятор принимает код с функциями, представленными в Java SE 11.

12

Значение по умолчанию. Компилятор принимает код с функциями, представленными в Java SE 12.

- путь к источнику или - путь к источнику

Указывает, где искать исходные файлы ввода.Это путь к исходному коду, используемый для поиска определений классов или интерфейсов. Как и путь к пользовательскому классу, записи исходного пути разделяются двоеточием (: ) в Oracle Solaris, Linux и macOS и точкой с запятой (; ) в Windows. Это могут быть каталоги, архивы JAR или архивы ZIP. Если используются пакеты, то имя локального пути в каталоге или архиве должно отражать имя пакета.

Примечание:

Классы, найденные через путь к классам, могут быть перекомпилированы, когда также будут найдены их исходные файлы.См. Поиск типов.

- системный jdk | нет

Заменяет расположение системных модулей.

- целевой выпуск

Создает файлы классов для конкретной версии виртуальной машины.

--upgrade-module - путь, путь

Заменяет расположение обновляемых модулей.

-verbose

Выводит сообщения о том, что делает компилятор.Сообщения включают информацию о каждом загруженном классе и каждом скомпилированном исходном файле.

- версия или - версия

Распечатывает информацию о версии.

-Ошибка

Прекращает компиляцию при появлении предупреждений.

Как использовать команду javac

  1. Программирование
  2. Java
  3. Как использовать команду javac

Дуг Лоу

Команда javac в Java компилирует программу из командной строки. Он считывает исходную программу Java из текстового файла и создает скомпилированный файл класса Java. Базовая форма команды javac —

 javac имя файла  [параметры]  

Например, чтобы скомпилировать программу с именем HelloWorld.java, используйте эту команду:

 javac HelloWorld.java 

Обычно команда javac компилирует только тот файл, который вы указываете в командной строке, но вы можете уговорить javac скомпилировать более одного файла за раз, используя любой из следующих методов:

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

  • В команде javac можно указать более одного имени файла.Следующая команда компилирует три файла:

     javac TestProgram1.java TestProgram2.java TestProgram3.java 
  • Вы можете использовать подстановочный знак для компиляции всех файлов в папке, например:

     javac * .java 
  • Если вам нужно скомпилировать много файлов одновременно, но вы не хотите использовать подстановочный знак (возможно, вы хотите скомпилировать большое количество файлов, но не все файлы в папке), вы можете создать аргумент file, , в котором перечислены файлы для компиляции.В файле аргументов вы можете ввести столько имен файлов, сколько захотите, используя пробелы или разрывы строк для их разделения. Вот файл аргументов с именем TestPrograms, в котором перечислены три файла для компиляции:

     TestProgram1.java
    TestProgram2.java
    TestProgram3.java 

    Вы можете скомпилировать все программы в этом файле, используя символ @ , за которым следует имя файла аргументов в командной строке javac, например:

 javac @TestPrograms 

У команды javac есть множество опций, которые вы можете использовать, чтобы повлиять на то, как она компилирует ваши программы.

Опция Описание
-bootclasspath <путь> Переопределяет расположение файлов классов начальной загрузки. (Файлы классов начальной загрузки
— это классы, реализующие среду выполнения Java. Вы,
, редко будете использовать эту опцию.)
-classpath <путь> Указывает, где найти файлы классов пользователя. Используйте эту опцию, если
ваша программа использует файлы классов, которые вы сохранили в отдельной папке
.
-cp <путь> То же, что и путь к классам.
-d <каталог> Указывает, где разместить созданные файлы классов.
— устаревание Выводит исходные местоположения, в которых используются устаревшие API (функции, которые
считаются устаревшими). Используйте эту опцию, если хотите, чтобы компилятор
предупреждал вас всякий раз, когда вы используете методы API, которые были объявлены устаревшими.
-encoding Задает кодировку символов, используемую исходными файлами.
-endorseddirs Переопределяет местоположение одобренного пути к стандартам.
-extdirs Переопределяет расположение установленных расширений.
Создает всю отладочную информацию.
-g: {строки, vars, источник} Генерирует только некоторую отладочную информацию.
-g: нет Не генерирует отладочную информацию.
— помощь Печатает краткий обзор стандартных опций.
-J Передает непосредственно системе выполнения
.
— пряжа Предупреждений нет.
-источник <выпуск> Обеспечивает совместимость исходного кода с указанным выпуском.
-sourcepath <путь> Указывает, где искать исходные файлы ввода.
-target <выпуск> Создает файлы классов для конкретной виртуальной машины
версии.
-verbose Выводит сообщения о том, что делает компилятор.
— версия Предоставляет информацию о версии.
M Печатает краткий обзор нестандартных вариантов.

Файл класса — это скомпилированная программа Java, которая может быть выполнена командой java. Компилятор Java читает исходные файлы и создает файлы классов.

Чтобы использовать один или несколько из этих параметров, введите параметр до или после имени исходного файла.Например, одна из следующих команд компилирует файл HelloApp.java с включенными параметрами -verbose и -deprecation:

 javac HelloWorld.java –verbose –deprecation
javac –verbose –deprecation HelloWorld.java 
Об авторе книги

Дуг Лоу начал писать книги по программированию еще до изобретения Java. Он является автором бестселлеров более 30 книг для чайников, в том числе Java All-in-One For Dummies .

javac — компилятор языка программирования Java

javac — компилятор языка программирования Java

ОБЗОР

javac [параметры] [source.java | @filelist] ...
 

ОПИСАНИЕ

Инструмент javac считывает определения классов и интерфейсов, написанные на
язык программирования Java, и компилирует их в класс байт-кода
файлы.

Есть два способа передать имена файлов исходного кода в javac :

  • Для небольшого количества исходных файлов просто перечислите имена файлов в
    командная строка.
  • Для большого количества исходных файлов перечислите имена файлов в
    файл, разделенный пробелами или переносами строк. Затем используйте файл списка
    имя в командной строке javac , которому предшествует @
    персонаж.

Имена файлов исходного кода должны иметь суффиксы .java ,
имена файлов классов должны иметь суффиксы .class , и оба
исходные файлы и файлы классов должны иметь корневые имена, которые идентифицируют класс. За
Например, класс с именем MyClass будет записан в
Исходный файл с именем MyClass.java и скомпилирован в
Файл класса байт-кода с именем MyClass.class .

Определения внутреннего класса
создавать дополнительные файлы классов. Эти файлы классов имеют имена, объединяющие
имена внутренних и внешних классов, например
MyClass $ MyInnerClass.class .

Вы должны расположить исходные файлы в дереве каталогов, которое отражает их
дерево пакетов. Например, если вы храните все исходные файлы в
d: \ workspace , исходный код для
com.mysoft.mypack.MyClass должен быть в
д: \ рабочая область \ ком \ mysoft \ mypack \ MyClass.java .

По умолчанию компилятор помещает каждый файл класса в тот же каталог, что и
его исходный файл. Вы можете указать отдельный целевой каталог с помощью
-d (см. «Параметры» ниже).

ПОИСК ТИПОВ

При компиляции исходного файла компилятору часто требуется информация
о типе, который он еще не узнал. Компилятору нужен тип
информация для каждого класса или интерфейса, используемого, расширенного или реализованного
в исходном файле. Сюда входят классы и интерфейсы, не явным образом
упомянутые в исходном файле, но которые предоставляют информацию через
наследство.

Например, когда вы создаете подкласс java.applet.Applet , вы также
с использованием классов предков апплета : java.awt.Panel ,
java.awt.Container , java.awt.Component и
java.awt.Объект .

Когда компилятору нужна информация о типе, он
ищет исходный файл или файл класса, который определяет тип.
Компилятор сначала ищет в
классы начальной загрузки и расширения, затем
в пути к пользовательскому классу. Путь к пользовательскому классу определяется установкой
CLASSPATH переменной среды или с помощью -classpath
параметр командной строки.(Подробнее см.
Конфигурация программного обеспечения JDK 1.2 под
Win32). Если вы используете параметр -sourcepath , компилятор
ищет по указанному пути исходные файлы; в противном случае компилятор
выполняет поиск по пути пользовательского класса как для файлов классов, так и для исходных файлов.

Вы можете
укажите разные классы начальной загрузки или расширения с помощью
-bootclasspath и -extdirs параметры. Увидеть
Кросс-компиляция, ниже.

Успешный поиск типа может привести к созданию файла класса, исходного файла или
и то и другое.Вот как javac обрабатывает каждую ситуацию:

Обратите внимание, что javac может автоматически компилировать исходные файлы, не упомянутые
в командной строке. Используйте параметр -verbose для автоматической трассировки.
компиляция.

КРЕСТ КОМПИЛЯЦИЯ

Javac сам по себе является приложением Java и работает на платформе Java.
реализация. По умолчанию классы компилируются с загрузкой и
классы расширения в той же реализации. Но javac тоже
поддерживает кросс-компиляцию , где классы компилируются с
классы начальной загрузки и расширения другой реализации платформы Java.Чтобы указать классы начальной загрузки и расширения целевой реализации, используйте
-bootclasspath и -extdirs .

Обратите внимание, что CLASSPATH , -classpath , -bootclasspath ,
и -extdirs do not указывают классы, используемые для запуска
javac . Возился с реализацией компилятора в этом
путь обычно бессмысленен и всегда рискован. Если вам это нужно,
используйте опцию -J для передачи опций базовому
java лаунчер.

ОПЦИИ

-bootclasspath bootclasspath
Выполните кросс-компиляцию для указанного набора классов загрузки. В качестве
с путем к классу пользователя записи пути к загрузочному классу разделяются
точкой с запятой (; ) и могут быть каталогами, архивами JAR,
или ZIP-архивы.
-classpath classpath
Установить путь класса пользователя, переопределив путь класса пользователя в
переменная среды CLASSPATH .Если ни то, ни другое
CLASSPATH или -classpath указан, пользователь
путь к классу состоит из текущего каталога. Увидеть
Конфигурация программного обеспечения JDK 1.2 под
Win32 для более подробной информации.

Если опция -sourcepath не указана, пользователь
Путь к классам ищется как для исходных файлов, так и для файлов классов.

-d каталог
Задайте каталог назначения для файлов классов. Если класс
является частью пакета, javac помещает файл класса в
подкаталог, отражающий имя пакета, создающий каталоги
по мере необходимости.Например, если вы укажете -d c: \ myclasses
и класс называется com.mypackage.MyClass ,
тогда файл класса вызывается
c: \ myclasses \ com \ mypackage \ MyClass.class .

Если -d не указан, javac помещает файл класса
в том же каталоге, что и исходный файл.

Обратите внимание, что каталог, указанный параметром -d , не является
автоматически добавляется в путь к вашему классу пользователя.

-в зависимости
Использовать информацию о зависимостях в таблице констант файла класса
чтобы определить, не устарел ли файл класса.Это более
надежная процедура поиска классов, которые необходимо
перекомпилирован, но может замедлить процесс компиляции
коренным образом.
— устаревание
Показать описание каждого использования или отмены устаревшего
член или класс. Без — устаревание , javac
показывает имена исходных файлов, которые используют или заменяют устаревшие
члены или классы.
-кодирование
Задайте имя кодировки исходного файла, например
EUCJIS / SJIS .Если -кодировка не указана,
используется конвертер платформы по умолчанию.
-extdirs каталоги
Выполните кросс-компиляцию с указанными каталогами расширений.
Каталоги — это список разделенных точкой с запятой
каталоги. Каждый архив JAR в указанных каталогах
искал файлы классов.
Создание информации о локальной переменной для отладки.

В предыдущих выпусках варианты -g и -O могли
не могут использоваться вместе.В этом выпуске можно комбинировать -g
и -O , но вы можете получить неожиданные результаты, например
отсутствующие переменные, перемещенный или отсутствующий код.

-g: nodebug
Не генерировать отладочную информацию. Если
-g: nodebug не указан, информация о номере строки
сгенерировано, даже если -g не определено.
-J опция
Передать опцию в средство запуска java , вызываемое
javac .Например, -J-Xms12m задает запуск
память до 12 мегабайт.
-J-Djavac.pipe.output = true
Отправлять сообщения компилятора на System.out . От
по умолчанию сообщения компилятора идут в System.err .
-Nowarn
Отключить предупреждающие сообщения.
-O
Оптимизировать код по времени выполнения. Использование -O
опция может замедлить компиляцию, создавать файлы классов большего размера,
и затруднить отладку программы.

В этом выпуске -O не включается автоматически
-зависит или выключить -g . Кроме того, -O больше не
позволяет встраивать классы. См. -O: межкласс .

-O: межклассовый
Оптимизируйте код и предположите, что все сгенерированные классы будут
доставлен и модернизирован как единое целое. Это позволяет встраивать
через классы.

Используйте -O: интеркласс по своему усмотрению. Интеркласс
оптимизация может нарушить бинарную совместимость.Компилятор должен
не
имеют доступ к исходному коду для классов за пределами
блок доставки. В частности, компилятор не должен иметь доступа
в исходный код для Core API, так как это приведет к
программа, несовместимая с другой платформой Java
реализации. Проверьте наличие нежелательного исходного кода в текущем
каталог, каталоги, указанные в -sourcepath и
путь к классу пользователя.

-sourcepath sourcepath
Укажите путь к исходному коду для поиска класса или
определения интерфейсов.Как и путь к пользовательскому классу, исходный путь
записи разделяются точкой с запятой (; ) и могут быть
каталоги, архивы JAR или архивы ZIP. Если пакеты
используется, локальный путь в каталоге или архиве должен
отразите название пакета.

Обратите внимание, что классы, найденные через путь к классам, подлежат
автоматическая перекомпиляция.

-вербус
Подробный вывод. Сюда входит информация о каждом классе
загружен и каждый исходный файл скомпилирован.

ПРИМЕРЫ

Компиляция простой программы

Один исходный файл, Hello.java , определяет класс с именем
привет. Привет . Каталог приветствия — это
каталог пакета как для исходного файла, так и для файла класса и является
вне текущего каталога. Это позволяет нам использовать класс пользователя по умолчанию
путь. Это также избавляет от необходимости указывать отдельный пункт назначения
каталог с -d .

D: \ examples>  dir / b 
Привет

D: \ examples>  dir / b приветствия 
Здравствуйте.Ява

D: \ examples>  введите приветствие \ Hello.java 
пакет поздравлений;

public class Hello {
    public static void main (String [] args) {
        for (int i = 0; i  приветствия javac \ Hello.java 

D: \ examples>  dir / b приветствия 
Hello.java
Здравствуй класс

D: \ examples>  java привет. Привет, мир, вселенная, всем 
Привет мир
Привет Вселенная
Привет всем
 

Компиляция из нескольких источников
Файлы

В этом примере компилируются все исходные файлы в пакете.
привет .

D: \ examples>  ls 
Привет/

D: \ examples>  dir / b приветствия 
Aloha.java
GutenTag.java
Hello.java
Hi.java

D: \ examples>  приветствие javac \ *. Java 

D: \ examples>  dir / b приветствия 
Aloha.class
GutenTag.class
Здравствуй класс
Привет класс
Aloha.java
GutenTag.java
Hello.java
Hi.java
 

Указание класса пользователя
Путь

Изменив один из исходных файлов в предыдущем примере, мы
перекомпилируйте его:

D: \ examples>  javac привет \ Привет.Java 
 

С привет. Привет относится к другим классам в
привет пакет , компилятор должен найти эти другие
классы. Пример выше работает, потому что наш путь к классу пользователя по умолчанию
оказывается каталог, содержащий каталог пакета. Но
предположим, мы хотим перекомпилировать этот файл и не беспокоиться о том, какой
каталог, в котором мы находимся? Затем нам нужно добавить D: \ examples в
путь к классу пользователя. Мы можем сделать это, установив CLASSPATH , но здесь
мы будем использовать опцию -classpath .

C: \>  javac -classpath d: \ examples d: \ examples \ greetings \ Hi.java 
 

Если мы изменим greetings.Hi снова, чтобы использовать баннерную утилиту,
эта утилита также должна быть доступна через путь пользовательского класса.

C: \>  javac -classpath d: \ examples; d: \ lib \ Banners.jar
d: \ examples \ greetings \ Hi.java 
 

Чтобы выполнить класс в приветствии , нам нужен доступ как к
привет и классам, которые он использует.

C: \>  java -classpath d: \ examples; d: \ lib \ Banners.jar привет. Привет, 
 

Разделение исходных файлов и классов
Файлы

Часто имеет смысл хранить исходные файлы и файлы классов отдельно.
справочники, особенно на крупных проектах. Мы используем -d для обозначения
отдельное место назначения файла класса. Поскольку исходных файлов нет в
путь к пользовательскому классу, мы используем -sourcepath , чтобы помочь компилятору
найдите их.

D: \ project>  dir / b 
классы
lib
src

D: \ project>  каталог / b src 
прощания

D: \ project>  dir / b src \ farewells 
Основание.Ява
GoodBye.java

D: \ project>  каталог / библиотека 
Banners.jar

D: \ project>  dir / b классы 

D: \ project>  javac -sourcepath src -classpath классы: lib \ Banners.jar
src \ farewells \ GoodBye.java -d классы 

D: \ project>  dir / b классы 
прощания

D: \ project>  dir / b классы \ прощай 
Базовый класс
GoodBye.class

 

Обратите внимание, что компилятор скомпилировал src \ farewells \ Base.java ,
хотя мы не указали это в командной строке.Проследить
автоматическая компиляция, используйте опцию -verbose .

Кросс-компиляция

Здесь мы используем JDK 1.2 javac для компиляции с JDK 1.1
классы начальной загрузки. JDK 1.2 javac требует загрузчика 1.2
классы для запуска, поэтому нам нужно указать javac не компилировать с
собственная платформа Java. Мы делаем это с помощью -bootclasspath и
-extdirs .

D: \ oldies>  javac -bootclasspath lib11 \ classes.застегивать
-extdirs "" OldCode.java 
 

СМОТРИ ТАКЖЕ

javac — Компилятор Java

javac — Компилятор Java

javac компилирует программы на Java.

ОБЗОР

   javac [параметры] filename.java ...
   javac_g [параметры] имя_файла.java ...
 

ОПИСАНИЕ

Команда javac компилирует исходный код Java в байт-коды Java.
Затем вы используете интерпретатор Java — java
команда — для интерпретации байт-кодов Java.

Исходный код Java должен содержаться в файлах, имена файлов которых оканчиваются на
.java расширение.
Имя файла должно быть построено из имени класса,
как имя класса .java ,

если класс является общедоступным или на него есть ссылка из другого исходного файла.

Для каждого класса, определенного в каждом исходном файле, скомпилированном javac ,
компилятор сохраняет полученные байт-коды в файле класса
с именем формы имя класса .класс .
Если вы не укажете опцию -d , компилятор поместит каждый файл класса
в том же каталоге, что и соответствующий исходный файл.

Когда компилятор должен ссылаться на ваши собственные классы, вам необходимо указать их
место расположения.
Используйте параметр -classpath или переменную среды CLASSPATH , чтобы
сделай это.
Путь к классам — это последовательность каталогов (или zip-файлов), которые
javac ищет классы, еще не определенные ни в одном из
файлы, указанные непосредственно как аргументы команды.Компилятор ищет в пути к классам как исходный файл, так и файл класса,
перекомпилировать исходный код (и регенерировать файл класса), если он новее.

Установите для свойства javac.pipe.output значение true для отправки
выводить сообщения в System.out . Установить javac.pipe.output
to false , то есть не устанавливать, для отправки выходных сообщений на
System.err .

javac_g — неоптимизированная версия javac , подходящая для
использовать с отладчиками, такими как jdb .

ОПЦИИ

— путь к классам путь
Указывает путь, который использует javac для поиска классов, необходимых для запуска
javac или на вас ссылаются другие классы
компиляция. Переопределяет среду по умолчанию или среду CLASSPATH
переменная, если она установлена. Каталоги разделяются точкой с запятой. Это
часто бывает полезно, чтобы каталог, содержащий исходные файлы, находился на
путь класса. Вы всегда должны включать системные классы в
конец пути.Например:

   javac -classpath.; C: \ users \ dac \ classes; C: \ tools \ java \ classes ...
 
-d каталог
Задает корневой каталог иерархии файлов классов. В другом
словами, это, по сути, каталог назначения для вашего скомпилированного
классы. Например, делая:

   javac -d C: \ users \ dac \ classes MyProgram.java
 

вызывает файлы классов для классов в
MyProgram.java исходный файл для сохранения в каталоге
C: \ users \ dac \ classes .

Обратите внимание, что параметры -d и -classpath имеют независимые
последствия. Компилятор читает только путь к классу и записывает только
в целевой каталог.
Часто бывает полезно, чтобы целевой каталог находился на пути к классам.
Если опция -d не указана, исходные файлы должны быть
хранится в иерархии каталогов, отражающей структуру пакета,
так что получившиеся файлы классов можно будет легко найти.

-кодирование имя кодировки

Укажите имя кодировки исходного файла, например EUCJIS \ SJIS .Если
эта опция не указана, тогда используется конвертер платформы по умолчанию.

Включает создание отладочных таблиц. Таблицы отладки содержат
информация о номерах строк и локальных переменных — используемая информация
инструментами отладки Java. По умолчанию генерируются только номера строк, если только
оптимизация ( -O ) включена.
-Nowarn
Отключает предупреждения. При использовании компилятор не выводит никаких предупреждений.
-O
Оптимизирует скомпилированный код, встраивая статические, конечные и частные методы.
Обратите внимание, что ваши классы могут увеличиваться в размерах.
-вербус
Заставляет компилятор и компоновщик распечатать сообщения о том, какой источник
файлы компилируются и какие файлы классов загружаются.
-в зависимости
Вызывает перекомпиляцию файлов классов, в которых
исходные файлы, заданные как аргументы командной строки, рекурсивно зависят.Без этой опции только файлы, которые напрямую зависят и
отсутствующие или устаревшие будут перекомпилированы. Перекомпиляция не работает
распространяться на отсутствующие или устаревшие файлы только в зависимости от уже
актуальные файлы классов.
-J javaoption
Передает строку javaoption как единственный аргумент в
Интерпретатор Java, запускающий компилятор. Аргумент не должен
содержать пробелы. Все слова с несколькими аргументами должны начинаться с префикса
-J , который зачищен.Это полезно для настройки
среда выполнения компилятора или использование памяти.

ПРИМЕРЫ

Каждому имени пакета соответствует имя каталога.
В следующих примерах исходные файлы расположены по адресу
c: \ jdk \ src \ java \ awt \ *. Java .

Компиляция одного или нескольких пакетов

Чтобы скомпилировать пакет, исходные файлы ( * .java ) для этого пакета
должен находиться в каталоге с тем же именем, что и пакет.
Если имя пакета состоит из нескольких идентификаторов (разделенных
точки), каждый идентификатор представляет отдельный каталог.Таким образом, все классы java.awt должны находиться в каталоге с именем java \ awt \.

Сначала перейдите в родительский каталог самого верхнего пакета. затем
запустите javac, указав одно или несколько имен пакетов.

  % cd c: \ jdk \ src
  % javac java.awt java.awt.event
 

Компилирует общедоступные классы в пакеты java.awt и
java.awt.event .

Компиляция одного или нескольких классов

Перейдите в каталог, в котором находится класс. Затем запустите javac, предоставив
одно или несколько имен классов.

  % cd c: \ jdk \ src \ java \ awt
  % javac Button.java Canvas.java
 

Компилирует два класса.

ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ

КЛАСС
Используется для предоставления системе пути к пользовательским классам. Справочники
разделенные точкой с запятой, например,

   .; C: \ users \ dac \ classes; C: \ tools \ java \ classes
 

СМОТРИ ТАКЖЕ

Ява,
jdb,
Джава
javap,
javadoc,
КЛАСС

javac — Компилятор Java

javac — Компилятор Java

javac компилирует программы на Java.

ОБЗОР

javac [параметры] filename.java ...
javac_g [параметры] имя_файла.java ...
 

ОПИСАНИЕ

Команда javac компилирует исходный код Java в байт-коды Java.
Затем вы используете интерпретатор Java — java
команда — для интерпретации байт-кодов Java.

Исходный код Java должен содержаться в файлах, имена файлов которых оканчиваются на
.java расширение.
Имя файла должно быть построено из имени класса,
как имя класса .Java ,
если класс является общедоступным или на него есть ссылка из другого исходного файла.

Для каждого класса, определенного в каждом исходном файле, скомпилированном javac ,
компилятор сохраняет полученные байт-коды в файле класса
с именем в форме имя класса . класс .
Если вы не укажете опцию -d , компилятор поместит каждый файл класса
в том же каталоге, что и соответствующий исходный файл.

Когда компилятор должен ссылаться на ваши собственные классы, вам необходимо указать их
место расположения.Используйте параметр -classpath или переменную среды CLASSPATH , чтобы
сделай это.
Путь к классам — это последовательность каталогов (или zip-файлов), которые
javac ищет классы, еще не определенные ни в одном из
файлы, указанные непосредственно как аргументы команды.
Компилятор ищет в пути к классам как исходный файл, так и файл класса,
перекомпилировать исходный код (и регенерировать файл класса), если он новее.

Установите для свойства javac.pipe.output значение true для отправки
выводить сообщения в Систему .из . Установить javac.pipe.output
to false , то есть не устанавливать, для отправки выходных сообщений на
System.err .

javac_g — неоптимизированная версия javac , подходящая для
использовать с отладчиками, такими как jdb .

ОПЦИИ

— путь к классам путь
Указывает путь, который использует javac для поиска классов, необходимых для запуска
javac или на него ссылаются другие классы, которые вы компилируете.Переопределяет значение по умолчанию или переменную среды CLASSPATH , если
установлено. Каталоги разделяются двоеточиями. Часто бывает полезно
чтобы каталог, содержащий исходные файлы, находился на пути к классу.
Вы всегда должны включать системные классы в конец пути.
Например:

   javac -classpath.: / home / avh / classes: / usr / local / java / classes ...
 
-d каталог
Задает корневой каталог иерархии файлов классов.В другом
словами, это, по сути, каталог назначения для вашего скомпилированного
классы. Например, делая:

   javac -d / home / avh / классы MyProgram.java
 

вызывает скомпилированные файлы классов для классов в
MyProgram.java исходный файл для сохранения в каталоге
/ home / avh / classes .

Обратите внимание, что параметры -d и -classpath имеют независимые
последствия. Компилятор читает только путь к классу и записывает только
в целевой каталог.Часто бывает полезно, чтобы целевой каталог находился на пути к классам.
Если опция -d не указана, исходные файлы должны быть
хранится в иерархии каталогов, отражающей структуру пакета,
так что получившиеся файлы классов можно будет легко найти.

-кодирование имя кодировки
Укажите имя кодировки исходного файла, например EUCJIS / SJIS . Если
эта опция не указана, тогда используется конвертер платформы по умолчанию.
Включает создание отладочных таблиц. Таблицы отладки содержат
информация о номерах строк и локальных переменных — используемая информация
инструментами отладки Java. По умолчанию генерируются только номера строк, если только
оптимизация ( -O ) включена.
-Nowarn
Отключает предупреждения. При использовании компилятор не выводит никаких предупреждений.
-O
Оптимизирует скомпилированный код, встраивая статические, конечные и частные методы.Обратите внимание, что ваши классы могут увеличиваться в размерах.
-вербус
Заставляет компилятор и компоновщик распечатать сообщения о том, какой источник
файлы компилируются и какие файлы классов загружаются.
-в зависимости
Вызывает перекомпиляцию файлов классов, в которых
исходные файлы, заданные как аргументы командной строки, рекурсивно зависят.
Без этой опции только файлы, которые напрямую зависят и
отсутствующие или устаревшие будут перекомпилированы.Перекомпиляция не работает
распространяться на отсутствующие или устаревшие файлы только в зависимости от уже
актуальные файлы классов.
-J javaoption
Передает строку javaoption как единственный аргумент в
Интерпретатор Java, запускающий компилятор. Аргумент не должен
содержать пробелы. Все слова с несколькими аргументами должны начинаться с префикса
-J , который зачищен. Это полезно для настройки
среда выполнения компилятора или использование памяти.

ПРИМЕРЫ

Каждому имени пакета соответствует имя каталога.
В следующих примерах исходные файлы расположены по адресу
/home/ws/src/java/awt/*.java .

Компиляция одного или нескольких пакетов

Чтобы скомпилировать пакет, исходные файлы ( * .java ) для этого пакета
должен находиться в каталоге с тем же именем, что и пакет.
Если имя пакета состоит из нескольких идентификаторов (разделенных
точки), каждый идентификатор представляет отдельный каталог.Таким образом, все классы java.awt должны находиться в каталоге с именем java / awt /.

Сначала перейдите в родительский каталог самого верхнего пакета. затем
запустите javac, указав одно или несколько имен пакетов.

  % cd / home / ws / src /
  % javac java.awt java.awt.event
 

Компилирует общедоступные классы в пакеты java.awt и
java.awt.event .

Компиляция одного или нескольких классов

Перейдите в каталог, в котором находится класс. Затем запустите javac, предоставив
одно или несколько имен классов.

  % cd / home / ws / src / java / awt /
  % javac Button.java Canvas.java
 

Компилирует два класса.

ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ

КЛАСС
Используется для предоставления системе пути к пользовательским классам. Справочники
разделенные двоеточиями, например,

.: / домашний / avh / классы: / usr / local / java / классы
 

СМОТРИ ТАКЖЕ

Ява,
jdb,
Джава
javap,
javadoc,
КЛАСС

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *