Документация по java: Java Documentation — Get Started

Содержание

План изучения Java

Содержание:

  1. Раздел Zero — Java Core
  2. Инструменты
  3. JDK API
  4. Новые возможности Java 8
  5. SQL, базы данных, JDBC
  6. Фреймворки
  7. Библиотеки и фреймворки для тестирования
  8. Сервисные библиотеки
  9. API-клиенты
  10. Паттерны проектирования
  11. Дополнительные знания
Что должен знать потенциальный Java Junior, чтобы получить первую работу или хотя бы претендовать на должность Trainee в хорошей компании? Какие инструменты помогут Java-программисту выйти на новый уровень? Какие технологии изучить, а какие — оставить на потом? Стандартного ответа на эти вопросы нет, как не существует и единого плана действий, который подошёл бы абсолютно всем. Одни компании стремятся к развитию, постоянно внедряют новые технологии и тестируют возможности новых версий языка, другие упорно держатся за старые. Есть и “серединные” варианты, и, пожалуй, таких больше всего. Тем не менее, мы составили план действий или Roadmap для начинающего Java-разработчика. В стремлении сделать его максимально простым, мы указали только те технологии и темы, которые необходимы
подавляющему большинству
“джавистов”. Следует помнить, что не всё нужно изучать досконально (кое-что из приведённого удастся освоить только в процессе работы в команде), но иметь общее представление о них — не помешает.

0. Раздел Zero — Java Core

Нулевой раздел мы вставили в статью на всякий случай — вдруг сюда заглянет человек, который только планирует изучать Java и не знает, с чего начать. Java Core — то, что даже новичок должен знать очень хорошо. То есть знать базовые вещи, ориентироваться, что предлагает язык для решения той или иной задачи и в простых случаях уметь применить эти знания. Попрактиковаться в Java Core можно на JavaRush, и если вы ещё этого не сделали — приглашаем пройти курс! Ну а всем остальным напомним главные вехи Java Core:
  • Основные конструкции, операторы и типы данных Java
  • ООП и его реализация в Java
  • Исключения
  • Java Collections
  • Дженерики
  • Многопоточность

1. Инструменты

IDE или интегрированная среда разработки

Главный инструмент современного разработчика — это IDE. Сегодня на рынке их очень много, однако в профессиональной Java-разработке обычно фигурируют только два имени. Это построенная на плагинах бесплатная Eclipse, которая много лет подряд удерживала пальму первенства, и IntelliJ IDEA, в последние годы активно вытесняющая Eclipse, и это невзирая на то, что подписка на нужную профессионалам Ultimate-версию стоит денег. Напомним, в курсе JavaRush мы пользуемся бесплатной редакцией Community IntelliJ IDEA, у которой есть определённые функциональные ограничения по сравнению с Ultimate. Фраза “я знаю IDE” означает, что вы ориентируетесь в основных возможностях среды разработки, умеете компилировать, запускать, отлаживать и тестировать файлы, рефакторить код. Неплохим подспорьем в ускорении работы будет освоение горячих клавиш. Не поленитесь, уделите несколько часов разбору возможностей IDE, о которых вы не знали, и начинайте использовать их на практике.
И не пренебрегайте отладкой, это очень полезное умение. Все эти действия помогут существенно улучшить скорость и качество вашей работы.

Инструменты для автоматической сборки

Сегодня в Java-проектах чаще всего используют такие инструменты как Maven и Gradle. Не обязательно изучать их досконально, но будет полезно разобраться, чем они отличаются друг от друга, на чём основаны, что такое task’и (в Gradle) и фазы с целями в Maven. Будет достаточно почитать о системах и развернуть на них пару-тройку небольших проектов. Сделать это довольно просто, а с подробностями разберётесь уже в условиях реальной работы.

Системы контроля версий и сервисы онлайн-хостинга

Система контроля версий — это то, что помогает программистам работать в команде над общим проектом, не “поломав” его, синхронизировать разрозненные куски кода, сделанные разными людьми, откатывать неудачные обновления и добавлять новые. Наиболее распространены две системы контроля версий. Одна из них — распределённая и называется Git, вторая — централизованная, по имени SVN (она же — Subversion). На сегодняшний день стандартом де-факто является Git. Работать с этой системой удобнее и легче, она поддерживается всеми IDE (впрочем, как и SVN). Работу с Git можно опробовать быстро и просто, благо, в сети на эту тему — масса информации. Например, доступный на русском интерактивный учебник GitHowTo (проходится очень быстро). Начинающему разработчику очень важно освоить сервисы онлайн-хостинга для систем контроля версий. Чаще всего они базируются на Git и их называют Git-платформами (хотя некоторые из них умеют работать с разными системами контроля версий). Самая популярная из них — GitHub. Также довольно распространены BitBucket и GitLab. Эти системы помогают хранить и извлекать код, а ещё — делать то, что умеет Git, только не через командную строку, а через интерфейс. Также GitHub позволяет проверять код, предлагать решения проблем непосредственно на сайте. Там же можно найти какой-нибудь чужой открытый проект и попробовать предложить свои решения по его улучшению.
По сути, GitHub

Pro Java: Руководства по Java

Официальные руководства по Java от Oracle

Руководства и справочники по Java

Руководства по Java на русском языке

В этом разделе собрано все, что мне попалось в сети на русском языке по теме изучения Java. Некоторые сайты здесь сохранены для истории и дабы больше на них ни когда не попадать 🙂

Каждый сайт будет сопровождаться небольшим описанием

  • tutorialspot.ru/java совершенно не понятно кто и самое главное для чего сделал этот сайт, категория мусор
  • www.interface.ru/home.asp?artId=1602 старая статейка на известном сайте, может быть полезна начинающим, хотя и описана Java JDK 4 (1.4)
  • study-java.ru задумывался, видимо как блог-учебник по Java, но ведется очень вяло, вот-вот помрет, но есть не плохие статейки, может быть полезен начинающим. Ведет блог девушка по имени Мария. Объясняет просто и доступно и иногда даже забавно 🙂 Например цитата с сайта: «Программа на языке Java состоит из классов, а каждый класс, в свою очередь, представляет
    объект реального света
    . » Объект реального света — это сильно :). Материалов на сайте не очень много, но могут быть полезны начинающим. Так же есть уроки по программированию под Андроид и полезные ссылки.
  • java-study.ru прям сайт перевертыш от предыдущего. Достаточно убогий и не понятно зачем вообще сделанный. Походу это тупые перепечатки из книг с ужасно оформленным кодом и иллюстрациями из отсканенных книг. Категория — мусор.
  • cybern.ru/category/java/begin-java не плохие уроки для начинающих по Java, но местами очень странные объяснения. Например методы названы функциями, что для меня очень странно. Для начинающих пойдет, но с оговоркой, что терминология на данном ресурсе местами страдает. Так же есть уроки по другим языкам и средам разработки C++, C#, Delphi и т.п. В общем сайт можно отнести к категории полезных.
  • www.javaportal.ru заброшенный портал по Java, не понятно как доживший до наших дней. Частично не работающий, но все же на нем есть хорошие статьи и материалы. Писали знающие люди и знали что писали.
  • developer.alexanderklimov.ru/android/java/java.php не плохой экспресс-курс молодого бойца по Java, правда заточен под Android.
  • programador.ru блог программиста Java. Есть интересные статьи. Не для начинающих точно.
  • easy-code.ru/lesson/rub/java несколько хороших статей по Java, в частности по  регулярным выражениям. Есть статьи по другим языкам.
  • metanit.com/java/tutorial возможно кому-то будет полезен. Материал более менее структурирован, но весьма скуден. Возможно кому-то будут полезны примеры. Есть статьи по другим языкам, а так же по программированию под Android.
  • www.javable.com/tutorials достаточно старые курсы лекций по Java прочитанные в 96-98 годах, но все же могут быть полезны.
  • www.skipy.ru множество очень полезных статей по Java. Древний и хороший ресурс. Хотя на 2015 год, уже по ходу заброшенный. А жаль. Но все равно категория must read.
  • javatalks.ru по ходу самый большой форум по Java на русском языке. Must read.
  • Философия Java 4-е издание Wiki-версия это онлайн вариант урезанной редакции данной книги. Но сайт как-то странно организован. Делали по ходу дела хохлы 🙂 Но и на том спасибо. Главы данной книги с этого сайта возможно лучше смотреть по этому линку.

Java | Русскоязычная документация по Ubuntu

Java — это язык программирования и вычислительная платформа, впервые выпущенная компанией Sun Microsystems в 1995 году. Это базовая технология, на которой основываются многие современные программы (в том числе утилиты, игры и бизнес-приложения). Java работает на более чем 850 млн персональных компьютерах и в миллиардах устройств (в том числе в мобильных телефонах и в телевизорах) по всему миру.

Зачем нужен Java?

Есть множество приложений и веб-сайтов, которые будут работать, только если у вас установлена Java, и их число постоянно растет. Java обеспечивает быстродействие, безопасность и надежность. Java используется везде: от портативных компьютеров до центров обработки данных, от игровых приставок до научных суперкомпьютеров, от мобильных телефонов до Интернета!

Версии Java

На данный момент существует множество реализаций Java платформы, из которых популярны две – открытая версия OpenJDK и Oracle Java.

Основные отличия между этими версиями заключается в том, что в Oracle Java содержатся некоторые закрытые компоненты, а так же компоненты, защищенные патентами. OpenJDK является реализацией спецификаций Java с полностью открытым исходным кодом. Начиная с 7 версии OpenJDK является эталонной реализацией Java SE. Для большинства пользователей нет особой разницы какой именно версией Java пользоваться, но в некоторых случаях закрытая реализация от Oracle проявляет себя с лучшей стороны.

Установка Java

OpenJDK

Установить последнюю версию OpenJDK (JDK и JRE) можно перейдя по ссылке слева или введя в терминале следующую команду:

sudo apt-get install default-jdk

Установить последнюю версии JRE можно перейдя по ссылке слева или введя в терминале следующую команду:

sudo apt-get install default-jre

Установить последнюю версии плагина для браузера можно перейдя по ссылке слева или введя в терминале следующую команду:

sudo apt-get install icedtea-plugin

Установить последнюю версии пакета документации можно перейдя по ссылке слева или введя в терминале следующую команду:

sudo apt-get install default-jdk-doc

Установка Oracle Java сторонним скриптом от проекта webupd8. org (JRE и JDK)

В связи с тем, что Oracle изменила условия распространения своей реализации Java, в репозитории Ubuntu не содержатся компоненты Oracle Java. Существует PPA организованный сайтом webupd8.org содержащий в себе программу, которая будет автоматически проверять версию Java на сайте Oracle и сравнивать её с версией установленной на вашем компьютере. Это позволяет обойти ограничения наложенные на распространение Oracle Java.

Чтобы добавить данный репозиторий и использовать последнюю версию Java с сайта Oracle, выполните в терминале следующие действия:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

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

Проверьте установленную версию:

java -version
javac -version

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

echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections

Переключение между версиями Java. Вы можете установить Java 7 или другую версию командой:

sudo apt-get install oracle-java7-installer

После этого можно переключаться между версиями Java с помощью команд. Переключение на версию Java 7:

sudo update-java-alternatives -s java-7-oracle

Переключение на версию Java 8:

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

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

sudo apt-get install oracle-java8-set-default
Установка переменных среды может вызвать ошибки, если указать пути к разным версиям одной библиотеки (то есть будут совпадать имена классов) или путь к установленной в системе Java будет отличаться от указанного в переменных среды.

Поэтому, как вариант, если у вас нет программ использующих их, то не устанавливайте их.

Если вы используете эту команду и захотите переустановить jdk, то после переустановки необходимо выполнить её еще раз, чтобы обновить переменные (переустановить данный пакет).

Если вы переключаетесь между разными версиями Java, то также необходимо переустановить этот пакет. Для OpenJDK нету похожих пакетов поэтому для него придется указывать переменные среды вручную

sudo nano /etc/environment

Либо командой (добавленное командой export действует только до перезагрузки)

Переменная PATH должна зависить от JAVA_HOME и JRE_HOME, как показано в команде ниже. Команды с export должны быть набраны в консоли и тогда они будут действовать до перезагрузки системы. Или добавлены в конец файла /etc/profile и тогда они будут действовать после перезагрузки системы.

export PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"

Тогда для быстрого переключения на другие пепременные среды при смене версий Java нужно менять только эти переменные среды:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk
export JDK_HOME=/usr/lib/jvm/java-7-openjdk
export JRE_HOME=/usr/lib/jvm/java-7-openjdk/jre

Скорее всего данный скрипт именно так устанавливает переменную PATH так что вам не нужно будет её менять и нужно выполнить только последние три комманды.

Установка различных версий Java через графическое меню может быть сделана сторонним скриптом от Bruce Ingalls.

Установка скрипта из репозитория:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install update-java

Либо установите вручную:

sudo apt-get install zenity
wget http://webupd8.googlecode.com/files/update-java
chmod +x update-java
sudo ./update-java

После этого запустите скрипт:

sudo update-java

Для удаления Oracle Java 8 выполните команду:

sudo apt-get remove oracle-java8-installer

Установка Java вручную (на примере Oracle JDK 8)

Это краткая инструкция по минимальной установке Java SE JDK в систему. Здесь не рассмотрены вопросы с установкой всех альтернатив с привязкой man страниц, создание информационного файла для команды update-java-alternatives, создание значков и ярлыков запуска для окружения рабочего стола и настройкой binfmt для запуска jar файлов, как любой другой программный файл в системе. Все эти действия делает установщик от команды WebUpd8, рассмотренный ранее.

Загрузка

  • Загрузите архив Java JDK 8 с сайта компании Oracle.

Распаковка и расположение файлов

  • Распакуйте скачанный архив. Как правило, в debian/ubuntu для различных версий Java принято использовать каталог /usr/lib/jvm:

sudo mkdir -p /usr/lib/jvm
sudo tar -xf jdk-8-linux-i586.tar.gz -C /usr/lib/jvm

Добавление путей к файлам Java в систему (утилитой update-alternatives)

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.8.0/bin/javaws 1

С update-alternatives возможно иметь несколько версий Java в системе. Нет необходимости удалять OpenJDK или другие версии Java.

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
Чтобы установить нужную версию Java после добавления командой
update-alternatives --install

исполняемого файла можно выполнить команду

sudo update-alternatives --set java /usr/lib/jvm/jdk1. 8.0/bin/java

Где java можно заменить на javac, jar, javah и т. д.

java -version
javac -version

Если необходимо добавить иные исполняемые файлы, например javah, jar или другие для использования в виде команд терминала или использования программами, то делать по аналогии выше по тексту, использую команду update-alternatives и подставляя названия нужных исполняемых файлов.

Установка плагина Java для браузера

sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/jdk1.8.0/jre/lib/i386/libnpjp2.so 1
sudo update-alternatives --config mozilla-javaplugin.so

Обратите внимание на каталог i386 в пути к плагину. У сборки Java для другой архитектуры данный каталог может быть иным. Для архитектуры x86-64 (AMD64/Intel64/EM64T) каталог называется amd64.

Установка переменных среды

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

Отредактируйте файл /etc/environment/

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

Поэтому, как вариант, если у вас нет программ использующих их, то не устанавливайте их.

sudo nano /etc/environment

В переменную среды PATH добавьте пути к исполняемым файлам /usr/lib/jvm/jdk1.8.0/bin и /usr/lib/jvm/jdk1.8.0/jre/bin

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0/bin:/usr/lib/jvm/jdk1.8.0/jre/bin"

Создайте переменные среды:

JAVA_HOME="/usr/lib/jvm/jdk1.8.0"
JDK_HOME="/usr/lib/jvm/jdk1.8.0"
JRE_HOME="/usr/lib/jvm/jdk1.8.0/jre"

После редактирования файла /etc/environment перезагрузите систему.

Для быстрого переключения между версиями Java при использовании переменных среды можно использовать команды:

Переменная PATH должна зависить от JAVA_HOME и JRE_HOME, как показано в команде ниже. Команды с export должны быть набраны в консоли и тогда они будут действовать до перезагрузки системы. Или добавлены в конец файла /etc/profile и тогда они будут действовать после перезагрузки системы.

export PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"

Тогда для быстрого переключения на другие пепременные среды при смене версий Java нужно менять только эти переменные среды:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk
export JDK_HOME=/usr/lib/jvm/java-7-openjdk
export JRE_HOME=/usr/lib/jvm/java-7-openjdk/jre
Если необходимо подключить каталог с дополнительными файлами типа jar или class нужно создать переменную среды CLASSPATH, где перечислить необходимые каталоги. Либо указать путь к jar файлу в случае отдельного jar файла.
CLASSPATH="/home/user/apache-tomcat-7.0.52/lib:/home/user/mysql-connector-java.jar"

Создание ярлыков

Для добавления ярлыков меню вызывающих различные утилиты с графическими меню используйте средства вашей графической оболочки. Перед этим нужно добавить через update-alternatives (по аналогии выше) исполняемые файла описанные ниже. Например в xubuntu (xfce) клик правой кнопкой мыши по рабочему столу, выбрать пункт «создать ярлык» и вписать следующие команды:

  1. Oracle Java 8 Monitoring & Management Console
    jconsole
  2. Oracle Java 8 Monitoring & Management (VisualVM)
    jvisualvm
  3. Oracle Java 8 Web Start
    javaws
  4. Oracle Java 8 Mission Control
    jmc
Также можно использовать полный путь в ярлыках к файлам
/usr/lib/jvm/java-8-oracle/bin/jconsole

тогда не придется использовать update-alternatives

Ссылки

См. также

Сборка и выполнение Java программ — Fandroid.info

Сборка проекта

Сборка (англ. assembly) — двоичный файл, содержащий исполняемый код программы или (реже) другой подготовленный для использования информационный продукт.

Автоматизация сборки — этап написания скриптов или автоматизация широкого спектра задач применительно к ПО, применяемому разработчиками в их повседневной деятельности, включая такие действия, как:

  1. компиляция исходного кода в бинарный код
  2. сборка бинарного кода
  3. выполнение тестов
  4. разворачивание программы на производственной платформе
  5. написание сопроводительной документации или описание изменений новой версии

Для автоматизации сборки проектов традиционно используют системы сборки, такие как make на Unix подобных системах и nmake для компилятора Microsoft. Также традиционно написание файлов для сборки проекта под эти системы является задачей нетривиальной. Конечно, пользуясь только Mictosoft Visual Studio можно даже не подозревать о существовании этих файлов, так как интегрированная среда разработки достаточно удобно скрывает всю схему работы, оставляя снаружи несколько диалоговых окон и кнопку Build. Но для сложных проектов использующих массу сторонних библиотек и кроссплатформенных проектов такой подход часто оказывается неприемлемым.

Принципы сборки в java

1. Как работает java компилятор

 

Текст программы ———\

—> Javac —————> *.class

Дополнения  —— [-cp]—/

 

Текст программы — это исходный код программы на языке java.

Дополнения — это классы, которые необходимо учитывать во время сборки (библиотеки).

В итоге мы получаем набор файлов с расширением class. То есть, если мы используем сторонние библиотеки – мы должны указать их при сборке. Это могут быть скомпилированные классы или собранные подсистемы.

Не всегда для компиляции необходимо указывать дополнительные библиотеки (к примеру, если у нас программа в 1 программный файл). Но если всё же это необходимо, то для этого компилятор java необходимо запустить с аргументом «-cp» (сокращение от —classpath). После этого аргумента идёт список библиотек (jar файлов или файлов class) разделённых символом разделителем файлов (в *nix это «:», в windows это «;»).

Пример компиляции программы из одного файла:

javacHelloWorld. java

Пример компиляции программы c дополнительными библиотеками «myLib» и «my2ndLib»:

javac -cp myLib.jar:my2ndLib.jar NotStandartHelloWorld.java

В java нет разграничения между собранной библиотекой, исполняемым приложением или же подсистемой. Что имеется в виду, что если вы хотите создать самостоятельную сущность в едином файле, вы создаёте jar файл. К примеру, если вы создаёте библиотеку, то это будет jar файл с набором классов, который могут быть использованный другими разработчиками, если это подсистема, то это часть функционала (набор классов) вынесенная за рамки основного модуля, но используемая в нём (что то вроде частной библиотеки), и т.д..

 

2. Выполнение java-программы.

 

*.class ————- ———\

—> Java

Дополнения  —— [-cp]—/

 

Выполнение классов работает схожим образом с компиляцией (используются даже те же аргументы).

Если после компиляции у нас получилось 10 классов, то выполняем только класс который содержит функцию main, остальные классы должны быть представлены как библиотеки.

К примеру, запуск программы c дополнительными библиотекой «sout», которая находиться в папку «lib» выглядеть так:

java -cp lib/sout.jar HelloWorld

По умолчанию, все классы в текущем каталоги включены в пути (-cp для классов в текущем каталоге указывать не надо). Что имеется в виду, если мы скомпилировали программу, и в итоге получили множество классов в одной папке, то мы можем запускать только лишь главный класс, остальные классы java попробует найти сама в текущем каталоге (Даже если они находятся во вложенных папках, java и туда заглянет).

Такой подход допустим, когда у нас немного классов, но при больших системах перечисление всех классов не возможно (их количество может превышать тысячи …). Поэтому можно выполнять не класс, а специально собранный jar-файл. Для этого необходимо указать аргументы -jar.

java -cp lib.jar -jar myApp.jar

3. Jar-файл

Jar-файл — это ZIP архив (то есть вы можете разархивировать его). Jar-файл должен в себе содержать набор классов и файл META-INF/MANIFEST.MF, в котором описаны характеристики данного jar-файла.

Основной вариант создания Jar-файла:
jar cf jar-file input-file(s)

Jar – это утилита и набора утилит которые вы получаете при установке java.

Программа jar принимает аргументы в old-UNIX стиле: вначале идут ключи потом аргументы программы, ключ с аргументом указывается последним, не указывать «-» перед аргументами, группировать короткие аргументы («cf» значит «-c -f »).

  1.  Опция c — говорит о том, что вы хотите создать (create) jar-файл.
  2. Опция f — говорит о том, что вы хотите создать файл (file) с определённым именем (при выполнении данного примера создастся файл с именем «jar-file.jar»).
  3. Аргумент input-file(s) является разделенный пробеламисписок из одного или нескольких файлов, которые вы хотите включить в ваш JAR-файл. input-file(s) аргумент может содержать символ «*». Если любой из входных является каталогом, содержимое этих каталогов добавляются в архив JAR рекурсивно.

Когда вы создаете JAR-файл, он автоматически получает файл манифеста по умолчанию (если вы его не указали во входных файлах – он будет создан автоматически). В jar-файле может быть только один файл манифеста с указанным путём:

META-INF/MANIFEST.MF

Общая структура манифеста имеет вид:

Заголовокзначение

Все символы пробелов (\n, \r, \t, …) в «значении» будут удалены, к примеру, манифест:

Manifest-Version:1.0Созданная-By:1.6.0

(

Sun

Microsystems

Inc

)

 

Равносилен:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)

Когда вы создаете JAR-файл, по умолчанию файл манифеста просто содержит следующее:

Manifest-Version: 1. 0Созданная-By: 1.6.0 (Sun Microsystems Inc)

Эти строки показывают, что элементы манифеста имеют форму «заголовок: значение» пар. Имя заголовка отделяется от ее значения двоеточием. Манифест по умолчанию соответствует версии 1.0 спецификации манифест и был создан 1.6.0 версии JDK.

Манифест также могут содержать информацию о других файлах, которые не упакованы в архив (внешние библиотеки который необходимы для функционирования, об этом будет сказано более подробно дальше). Именно то, что информацию о jar-файле должна быть записаны в манифесте зависит от того, как вы собираетесь использовать JAR-файл. Манифест по умолчанию не делает никаких предположений о том, какую информацию он должен записать о других файлах.

Чтоб создать jar-файл с манифестом:
jar cfm jar-file manifest-addition input-file(s)

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

Если в написанном вами манифесте не будет одной из выше указанных опций, то они будут добавлены автоматически (то есть, ну указать манифест или указать пустой файл, это одно и то же, это часто применимо в начале разработки…). То, есть если ваш манифест выглядит следующим образом:

То, в итоговом jar-файле он будет представлен в виде:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)Main-Class: Main

Если вы разрабатываете приложение, которое поставляется в JAR-файл, необходимо каким-то образом указать, какой класс в JAR-файле является входной точкой приложения (который содержит функцию main). Вы предоставляете эту информацию с Main-Class заголовка в манифесте, который имеет общий вид:

Main-Class: имя класса

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

После того как вы установите Main-Class заголовка в манифесте, вы запустите файл JAR с помощью следующей формы Java команду:

java -jar JAR-file

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

java -cp JAR-file.jar MainClass

Если вы хотите указать лишь главный класс в манифесте, то вам не нужно создавать весь манифест, вы можете указать, необходимы параметр при вызове jar:

jar cfe app.jar MyApp MyApp.class

Опция e — говорит о точки входа в программу (entrypoint).

Вам придется ссылаться на классы в другие файлы JAR из JAR-файла (если вы используете сторонние библиотеки в своем приложении). Для этого вам необходимо включить следующие поля в манифест:

Class-Path: jar1-name jar2-name directory-name/jar3-name

Данный путь указывается относительно расположению выполняемого jar файла. К примеру, Netbeans складывает все библиотеки в папку lib, которую помещает рядом с собранным приложением, и соответственно указывает путь к библиотекам.

Рассмотрим конечный пример манифеста, для исполняемого jar-файла библиотеки к которому находятся рядом с ним в папке «lib»:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)Main-Class: net.mycompany.product1.MainClass-Path: lib/recoder.jar lib/io-common.jar lib/f

ile-common.jar

ссылка на источник

<Предыдущая        Оглавление      Следующая>

Язык программирования Java — это… Что такое Язык программирования Java?

Java
Класс языка:

объектно-ориентированный, структурный, императивный

Появился в:

1995 г.

Автор(ы):

Sun Microsystems

Последняя версия:

Java Standard Edition 6 (1. 6.14)

Типизация данных:

строгая полиморфная, статическая, безопасная, именованная (англ.), явная (англ.)

Основные реализации:

многочисленные

Испытал влияние:

C++, Eiffel

Повлиял на:

Ада 2005, C#, D, Groovy, J#, VJ#, PHP, Scala

Java — объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems и официально выпущенный 23 мая 1995 года. В отношении произношения в русском языке, как и в ряде других, образовались две различные нормы — заимствованная англоязычная /ˈdʒɑːvə/[1] и традиционно-национальная «Ява», соответствующая традиционому произношению названия острова Ява.

Java — так называют не только сам язык, но и платформу для создания приложений уровня предприятий на основе данного языка.

Изначально язык программирования назывался Oak (русск. Дуб) и разрабатывался Джеймсом Гослингом для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Java, любимого программистами, поэтому на официальной эмблеме языка Java изображена чашка с дымящимся кофе.

Основные особенности языка

Программы на Java транслируются в байт-код, выполняемый виртуальной java-машиной (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

Достоинство подобного способа выполнения программ — в полной независимости байт-кода от ОС и оборудования, что позволяет выполнять Java-приложения на любом устройстве, которое поддерживает виртуальную машину. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Это позволяет пользователям загружать программы, написанные на Java, на их компьютеры (или другие устройства, например, мобильные телефоны) из неизвестных источников, при этом не опасаясь заражения вирусами, пропажи ценной информации, и т. п.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований: применение технологии native-кода в стандартных библиотеках, а также аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология ARM).

Идеи, заложенные в концепцию и различные реализации JVM, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых в среде JVM[2]. Эта идея перекликается с концепцией CLI, заложенной в основу платформы .NET компании

История версий

Java 1.0

Разработка Java началась в 1990 году, первая официальная версия — Java 1.0, — была выпущена только в 1995 году.

Java 2.0

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

Java 5

Спецификация Java 5 была выпущена в сентябре 2004 года. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:

  • Перечислимые типы (enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей.
    • Перечислимый тип является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные.
    • Перечисление может реализовывать интерфейсы.
    • Для перечислений имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым.
  • Аннотации — возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении. Одновременно выпущен инструментарий для использования аннотированного кода. Одно из применений аннотаций — упрощение создания тестовых модулей для Java-кода.
  • Средства обобщённого программирования (generics) — механизм, аналогичный шаблонам в C++ (позже также появились и в C#), дающий возможность создавать классы и методы с полями и параметрами произвольного типа. С использованием данного механизма реализованы новые версии коллекций стандартной библиотеки Java.
  • Методы с неопределённым числом параметров.
  • Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими типами-врапперами (например, между int — Integer). Наличие такой возможности упрощает код, поскольку исключает необходимость в выполнении явных преобразований типов в очевидных случаях.
  • Разрешён импорт статических переменных.
  • В язык введён цикл по коллекции объектов (итератор).

Классификация платформ Java

Внутри Java существуют три основных семейства технологий:

  • J2EE или Java EE (начиная с v1.5) — Java Enterprise Editon, для создания программного обеспечения уровня предприятия;
  • J2SE или Java SE (начиная с v1.5) — Java Standard Editon, для создания пользовательских приложений, в первую очередь — для настольных систем;
  • J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах

Самыми популярными считаются серверные технологии семейства J2EE.

Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки скриптового языка Mozilla Rhino (англ.), улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов.

Java и Microsoft

Компанией ОС, начиная с Windows 95. MSJVM была близка к спецификации Sun Microsystems v.1.1.3, но не соответствовала ей по ряду принципиальных характеристик (в частности, по отсутствию поддержки технологий JNI и по наличию нестандартных расширений). Впоследствии это явилось поводом для судебных исков со стороны Sun Microsystems к [3]. В настоящее время компанией .NET предлагается Java-подобный язык J#, не соответствующий официальной спецификации языка Java.

Применения платформы Java

Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: Amazon[4][5], [6][7], Yandex (неоднозначная информация в отношении Java)[8][9], [10].

Следующие компании в основном фокусируются на Java (J2EE) технологиях, а не на .NET, хотя имеют дело также и с последними: IBM, Oracle. В частности, СУБД Oracle включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры[11].

Основные возможности

  • автоматическое управление памятью
  • расширенные возможности обработки исключительных ситуаций;
  • богатый набор средств фильтрации ввода/вывода;
  • набор стандартных коллекций, таких как массив, список, стек и т. п.;
  • наличие простых средств создания сетевых приложений (в том числе с использованием протокола HTTP-запросы и обрабатывать ответы;
  • встроенные в язык средства создания многопоточных приложений;
  • унифицированный доступ к базам данных на основе JDBC и

Идея пространств имён воплощена в Java-пакетах.

Пример программы

Программа, выводящая «Hello, World!»:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Пример использования шаблонов:

import java.util.*;
public class Sample {
    public static void main(String[] args) {
        // Создание объекта по шаблону.
        List<String> strings = new LinkedList<String>();
        strings.add("Hello");
        strings.add("world");
        strings.add("!");
        for (String s : strings) {
            System.out.print(s);
            System.out.print(" ");
        }
    }
}

Основные идеи

Примитивные типы

В языке Java только 8 скалярных типов: boolean, byte, char, short, int, long, float, double.

Классы-обёртки примитивных типов

Длины и диапазоны значений примитивных типов определяются стандартом, а не реализацией и приведены в таблице. Тип char сделали двухбайтовым для удобства локализации (один из идеологических принципов Java): когда складывался стандарт, уже существовал Unicode-16, но не Unicode-32. Поскольку в результате не осталось однобайтового типа, добавили новый тип byte. Типы float и double могут иметь специальные значения , и «не число» (Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN; для типа float — так же, но с приставкой Float вместо Double. Минимальные положительные значения, принимаемые типами float и double, тоже стандартизованы.

Тип Длина (в байтах) Диапазон или набор значений
boolean не определено true, false
byte 1 −128..127
char 2 0..216-1, или 0..65535
short 2 −215..215-1, или −32768..32767
int 4 −231..231-1, или −2147483648..2147483647
long 8 −263..263-1, или примерно −9.2·1018..9.2·1018
float 4 -(2-2-23)·2127..(2-2-23)·2127, или примерно −3.4·1038..3.4·1038, а также , , NaN
double 8 -(2-2-52)·21023..(2-2-52)·21023, или примерно −1.8·10308..1.8·10308, а также , , NaN

Такая жёсткая стандартизация была необходима, чтобы сделать язык платформенно-независимым, что является одним из идеологических требований к Java и одной из причин её успеха. Тем не менее одна небольшая проблема с платформенной независимостью всё же осталась. Некоторые процессоры используют для промежуточного хранения результатов 10-байтовые регистры или другими способами улучшают точность вычислений. Для того, чтобы сделать Java максимально совместимой между разными системами, в ранних версиях любые способы повышения точности вычислений были запрещены. Однако это приводило к снижению быстродействия. Выяснилось, что ухудшение точности ради платформенной независимости мало кому нужно, тем более если за это приходится платить замедлением работы программ. После многочисленных протестов этот запрет отменили, но добавили ключевое слово strictfp, запрещающее повышение точности.

Преобразования при математических операциях

В языке Java действуют следующие правила:

  1. Если один операнд имеет тип double, другой тоже преобразуется к типу double.
  2. Иначе, если один операнд имеет тип float, другой тоже преобразуется к типу float.
  3. Иначе, если один операнд имеет тип long, другой тоже преобразуется к типу long.
  4. Иначе оба операнда преобразуется к типу int.

Последнее правило отличает Java от старых реализаций C и C++ и делает код более безопасным. Так, например, в языке Java после выполнения кода

short x = 50, y = 1000;
int z = x*y;

переменной z присваивается значение 50000, а не −15536, как в большинстве безнадёжно устаревших реализаций C и C++. В программе, скомпилированной MS VC++, начиная с версии 7, а также многими другими современными компиляторами (gcc, Intel C++, Borland C++, Comeau и т. д.), значение будет также равно 50000.

Объектные переменные, объекты, ссылки и указатели

В языке Java имеются только динамически создаваемые объекты. Причем переменные объектного типа и объекты в Java — совершенно разные сущности. Переменные объектного типа являются ссылками, то есть неявными указателями на динамически создаваемые объекты. Это подчёркивается синтаксисом описания переменных. Так, в Java нельзя писать:

double a[10][20];
Foo b(30);

а нужно:

double[][] a = new double[10][20];
Foo b = new Foo(30);

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

Объектными являются переменные любого типа, кроме простых числовых типов. Явных указателей в Java нет. В отличие от указателей C, C++ и других языков программирования, ссылки в Java в высокой степени безопасны благодаря жёстким ограничениям на их использование, в частности:

  • Нельзя преобразовывать объект типа int или любого другого примитивного типа в указатель или ссылку и наоборот.
  • Над ссылками запрещено выполнять операции ++, −−, +, − или любые другие арифметические операции.
  • Преобразование типов между ссылками жёстко регламентировано. За исключением ссылок на массивы, разрешено преобразовывать ссылки только между наследуемым типом и его наследником, причём преобразование наследуемого типа в наследующий должно быть явно задано и во время выполнения производится проверка его осмысленности. Преобразования ссылок на массивы разрешены лишь тогда, когда разрешены преобразования их базовых типов, а также нет конфликтов размерности.
  • В Java нет операций взятия адреса (&) или взятия объекта по адресу (*). Звёздочка в Java означает умножение, и только. Амперсанд (&) означает всего лишь «побитовое и» (двойной амперсанд — «логическое и»).

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

Дублирование ссылок и клонирование

Из-за того, что объектные переменные являются ссылочными, при присваивании не происходит копирования объекта. Так, если написать

Foo foo, bar;
…
bar = foo;

то произойдет копирование адреса из переменной foo в переменную bar. То есть foo и bar будут указывать на одну и ту же область памяти, то есть на один и тот же объект; попытка изменить поля объекта, на который ссылается переменная foo, будет менять объект, с которым связана переменная bar, и наоборот. Если же необходимо получить именно ещё одну копию исходного объекта, пользуются или методом (функцией-членом, в терминологии C++) clone(), создающим копию объекта, или же копирующим конструктором.

Метод clone() требует, чтобы класс реализовывал интерфейс Cloneable (об интерфейсах см. ниже). Если класс реализует интерфейс Cloneable, по умолчанию clone() копирует все поля (мелкая копия). Если требуется не копировать, а клонировать поля (а также их поля и так далее), надо переопределять метод clone(). Определение и использование метода clone() часто является нетривиальной задачей [12].

Сборка мусора

В языке Java невозможно явное удаление объекта из памяти — вместо этого реализована сборка мусора. Традиционным приёмом, дающим сборщику мусора «намёк» на освобождение памяти, является присваивание переменной пустого значения null. Это, однако, не значит, что объект, заменённый значением null, будет непременно и немедленно удалён. Данный приём всего лишь устраняет ссылку на объект, то есть отвязывает указатель от объекта в памяти. При этом следует учитывать, что объект не будет удален сборщиком мусора, пока на него указывает хотя бы одна ссылка из используемых переменных или объектов. Существуют также методы для инициации принудительной сборки мусора, но не гарантируется, что они будут вызваны исполняющей средой, и их не рекомендуется использовать для обычной работы.

Классы и функции

Java не является процедурным языком: любая функция может существовать только внутри класса. Это подчёркивает терминология языка Java, где нет понятий «функция» или «функция-член» (англ. member function), а только метод. В методы превратились и стандартные функции. Например, в Java нет функции sin(), а есть метод Math.sin() класса Math (содержащего, кроме sin(), методы cos(), exp(), sqrt(), abs() и многие другие).

Статические методы и поля

Для того чтобы не надо было создавать объект класса Math (и других аналогичных классов) каждый раз, когда надо вызвать sin() (и другие подобные функции), введено понятие статических методов (англ. static method; иногда в русском языке они называются статичными). Статический метод (отмечаемый ключевым словом static в описании) можно вызвать, не создавая объекта его класса. Поэтому можно писать

вместо

Math m = new Math();
double x = m.sin(1);

Ограничение, накладываемое на статические методы, заключается в том, что в объекте this они могут обращаться только к статическим полям и методам.

Статические поля имеют тот же смысл, что и в C++: каждое существует только в единственном экземпляре.

Финальность

Ключевое слово final (финальный) означает разные вещи при описании переменной, метода или класса. Финальная переменная (именованная константа) инициализируется при описании и дальше не может быть изменена. Финальный метод не может быть переопределён при наследовании. Финальный класс не может иметь наследников вообще.

Абстрактность

В Java методы, не объявленные явно как final или private, являются виртуальными в терминологии C++: при вызове метода, по-разному определённого в базовом и наследующем классах, всегда производится проверка времени выполнения.

Абстрактным методом (описатель abstract) в Java называется метод, для которого заданы параметры и тип возвращаемого значения, но не тело. Абстрактный метод определяется в классах-наследниках. В C++ то же самое называется чисто виртуальной функцией. Для того чтобы в классе можно было описывать абстрактные методы, сам класс тоже должен быть описан как абстрактный. Объекты абстрактного класса создавать нельзя.

Интерфейсы

Высшей степенью абстрактности в Java является интерфейс (interface). Все методы интерфейса абстрактны: описатель abstract даже не требуется. Интерфейс не является классом. Класс может наследовать, или расширять (extends) другой класс или реализовывать (implements) интерфейс. Кроме того, интерфейс может наследовать, или расширять другой интерфейс.

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

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

Маркерные интерфейсы

В Java есть некоторые интерфейсы, которые не содержат методов для реализации, а специальным образом обрабатываются JVM. Это интерфейсы:

  • java.lang.Cloneable
  • java.io.Serializable
  • java.rmi.Remote
Шаблоны в Java (generics)

Начиная с версии Java 5 в языке появился механизм обобщённого программирования — шаблоны, внешне близкие к шаблонам C++. С помощью специального синтаксиса в описании классов и методов можно указать параметры-типы, которые внутри описания могут использоваться в качестве типов полей, параметров и возвращаемых значений методов.

// Объявление обобщённого класса
class GenericClass<E> 
{
  E getFirst() { ... }
  void add(E obj) { ... }
}
 
// Использование обобщённого класса в коде
GenericClass <String> var = new GenericClass<String>();
var.add("qwerty");
String p = var.getFirst();

Допускается обобщённое объявление классов, интерфейсов и методов. Кроме того, синтаксис поддерживает ограниченные объявления типов-параметров: указание в объявлении конструкции вида <T extends A & B & C...> требует, чтобы тип-параметр T реализовывал интерфейсы A, B, C и так далее, а конструкция <T super C> требует, чтобы тип-параметр T был типом C или одним из его предков.

В отличие от шаблонов C#, шаблоны Java не поддерживаются средой исполнения — компилятор просто создаёт байт-код, в котором никаких шаблонов уже нет. Реализация шаблонов в Java принципиально отличается от реализации аналогичных механизмов в C++: компилятор не порождает для каждого случая использования шаблона отдельный вариант класса или метода-шаблона, а просто создаёт одну реализацию байт-кода, содержащую необходимые проверки и преобразования типов. Это приводит к ряду ограничений использования шаблонов в программах на Java.

Проверка принадлежности к классу

В Java можно явно проверить, к какому классу принадлежит объект. Выражение foo instanceof Foo истинно, если объект foo принадлежит классу Foo или его наследнику, или реализует интерфейс Foo (или, в общем виде, наследует класс, который реализует интерфейс, который наследует Foo).

Далее, функция getClass(), определённая для всех объектов, выдаёт объект типа Class. Эти объекты можно сравнивать. Так, например, foo.getClass()==bar.getClass() будет истинно, если объекты foo и bar принадлежат в точности к одному классу (но это не означает что это два одинаковых объекта).

Кроме того, объект типа Class любого типа можно получить так: Integer.class, Object.class.

Однако прямое сравнение классов не всегда является оптимальным средством проверки на принадлежность к классу. Зачастую вместо него используют функцию isAssignableFrom(). Эта функция определена у объекта типа Class и принимает объект типа Class в качестве параметра. Таким образом, вызов Foo.class.isAssignableFrom(Bar.class) вернёт true в случае, если Foo является предком класса Bar. Так как все объекты являются потомками типа Object, вызов Object.class.isAssignableFrom() всегда вернёт true. В паре с упомянутыми функциями объекта типа Class используются также функции isInstance() (эквивалентно instanceof), а также cast() (преобразует параметр в объект выбранного класса).

Библиотеки классов

  • JDK — содержит набор базовых классов для всего ПО на платформах Java SE и Java EE
  • CDK — для создания химического ПО

Средства разработки ПО

  • JDK — помимо набора библиотек для платформ Java SE и Java EE содержит компилятор командной строки javac и набор утилит, также работающих в режиме командной строки.
  • NetBeans IDE — бесплатная интегрированная среда разработки для всех платформ Java — Java ME, Java SE и Java EE. Пропагандируется Sun Microsystems, разработчиком Java, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Fortran и др.).
  • Java SE и Java EE. Ведутся работы по поддержке в Eclipse платформы Java ME. Пропагандируется C, C++, Fortran и др.)
  • IntelliJ IDEA — коммерческая среда разработки для платформ Java SE, Java EE и Java ME.

Примечания

  1. java (англ.). Merriam-Webster Online Dictionary. Merriam-Webster. — Английская норма произношения слова «Java». Проверено 5 июня 2009.
  2. Robert Tolksdorf. Programming languages for the Java Virtual Machine JVM (англ.). is-research GmbH. — Онлайн-каталог альтернативных языков и языковых расширений для JVM. Проверено 5 июня 2009.
  3. Microsoft Java Virtual Machine Support (англ.). Microsoft (2003-09-12). — Официальное заявление Microsoft о программе поддержки MSJVM. Проверено 5 июня 2009.
  4. Todd Hoff Amazon Architecture (англ.) (2007-09-18). — Обсуждение архитектуры Amazon с использованием Java-технологий. Проверено 6 июня 2009.
  5. Amazon Elastic Compute Cloud (Amazon EC2) (англ.). Amazon Web Services LLC. — Описание технологии и возможностей Amazon EC2 как веб-сервиса. Проверено 6 июня 2009.
  6. Todd Hoff eBay Architecture (англ.) (2008-05-27). — Обсуждение архитектуры eBay на платформе Java. Проверено 6 июня 2009.
  7. Randy Shoup, Dan Pritchett The eBay Architecture (англ.) (PDF). SD Forum 2006 (2006-11-29). — Презентация по истории развития архитектуры eBay. Проверено 6 июня 2009.
  8. Allen Stern Exclusive Interview With Yandex CTO Ilya Segalovich (англ.). CenterNetworks (2008-01-14). — Интервью с техническим директором Яндекса Ильёй Сегаловичем. Проверено 6 июня 2009.
  9. Анатолий Орлов Архитектура Яндекс.Поиска (рус.) (PowerPoint). Материалы встречи JUG в Екатеринбурге (2008-05-24). Проверено 6 июня 2009.
  10. Brian Guan The LinkedIn Blog. Blog Archive. Grails at LinkedIn. (англ.). LinkedIn.com (2008-06-11). — История создания системы LinkedIn на основе Java-технологии Grails. Проверено 5 июня 2009.
  11. OracleJVM and Java Stored Procedures (англ.). Oracle Inc.. — Раздел портала Oracle, посвящённый технологиям Java в составе сервера СУБД Oracle. Проверено 5 июня 2009.
  12. Ссылка на документацию к методу Object.clone()(англ.)

Литература

  • Монахов Вадим Язык программирования Java и среда NetBeans, 2-е издание. — СПб.: «БХВ-Петербург», 2009. — С. 720. — ISBN 978-5-9775-0424-9
  • Джошуа Блох. Java. Эффективное программирование = Effective Java. — М.: «Лори», 2002. — С. 224. — ISBN 5-85582-169-2
  • Кей С. Хорстманн, Гари Корнелл. Java 2. Библиотека профессионала, том 1. Основы = Core Java™ 2, Volume I—Fundamentals. — 7-е изд. — М.: «Вильямс», 2007. — С. 896. — ISBN 0-13-148202-5
  • Кей С. Хорстманн, Гари Корнелл. Java 2. Библиотека профессионала, том 2. Тонкости программирования = Core Java™ 2, Volume II—Advanced Features. — 7-е изд. — М.: «Вильямс», 2007. — С. 1168. — ISBN 0-13-111826-9
  • Брюс Эккель. Философия Java = Thinking in Java. — 3-е изд.. — СПб.: «Питер», 2003. — С. 976. — ISBN 5-88782-105-1
  • Герберт Шилдт, Джеймс Холмс. Искусство программирования на Java = The Art of Java. — М.: «Диалектика», 2005. — С. 336. — ISBN 0-07-222971-3
  • Любош Бруга. Java по-быстрому: Практический экспресс-курс = Luboš Brůha. Java Hotová řešení.. — М.: Наука и техника, 2006. — С. 369. — ISBN 5-94387-282-5

См. также

Ссылки

Java Platform, Standard Edition Documentation

Java Platform, Standard Edition Documentation — Releases

Для правильного отображения этого содержимого необходимо включить JavaScript

  1. Дом
  2. Java
  3. Java SE

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

Последняя версия

Предыдущие версии

Вернуться к основному содержанию

Справочная документация по Java API

Как справочная документация по Java API организована в Eclipse Справка

Мариана Алупулуи
Опубликовано 20 марта 2007 г.

Предпосылки

Улучшение потребляемой документации по продукту — ключ к успех для многих проектов.Успех напрямую связан с ваши усилия по созданию и написанию хорошей документации.

Этот материал предполагает, что вы знакомы с программным обеспечением Java, Java API. справочная структура документации, генерация Javadoc и хочу знать подробнее о том, как предоставить улучшенную справочную документацию по Java API.
Новичкам следует ознакомиться со следующими материалами:

Создание простого в использовании справочника по Java API с возможностью поиска. документация

В этой статье описаны различные подходы к созданию простых в использовании и доступные для поиска ссылки на интерфейсы программирования приложений Java (API) документация.Описанные подходы являются стандартным решением Javadoc. и справочная система подключаемого модуля Eclipse, созданная с помощью документа JavaTOC. что я разработал. Документ JavaTOC создает оглавление (TOC) для справочная документация Javadoc API, помогающая пользователю легко искать справочная документация по API для конкретного класса, интерфейса или метода.

Справочная документация Javadoc API должна быть доступна для просмотра и с возможностью поиска.Стандартный Javadoc не полностью предлагает эту возможность. А полностью документированный API может служить нескольким целям, но самая важная причина в том, чтобы позволить пользователям полностью понимать и искать функции API которые им доступны. Если не задокументирован или не доступен для поиска, даже исходный автор может не понимать исходный код. Решение выработать привычку документировать исходный код и создавать доступные для поиска структура (навигация по оглавлению) для ссылок на Java API.Документ JavaTOC решает эту проблему, создавая доступную для поиска структуру для Ссылки.

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

Рассматриваемые подходы

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

Существует довольно много инструментов для создания справочника по Java API. документация. Моя текущая рекомендация — это доклет JavaTOC, используемый в сочетание со специализацией Javadoc или DITA API.

  • Javadoc — это инструмент, принадлежащий Sun, который извлекает комментарии разработчиков из исходного кода Java и выводит их в HTML.Инструмент Javadoc генерирует базовую структуру справочной документации Java API. Результатом является документация Javadoc HTML API для набора пакетов и классы.
  • Доклет JavaTOC создает навигацию по оглавлению и поиск возможность справочной документации по Java API. API IBM DITA Специализированная команда разработала пакет типов тем DITA для создавать файлы документации Java API и манифесты навигации для ссылки, которые будут включены в справочную систему Eclipse.

Следующие примеры ( Пример ссылки на API без toc навигация и Пример ссылки на API с toc навигация ) используйте исходный код Java из DITA Open Toolkit. Версия DITA Open Toolkit 1.0.2 или выше предоставляет интерфейс командной строки в качестве альтернативы для пользователей с мало знаний Ant, чтобы легко использовать инструментарий. После загрузки zip-файл, вы можете найти исходный код, использованный для примеров этой статьи, в модель DITA-OT1.Каталог 2_src \ DITA-OT1.2-src \ src .

О компании Документ Javadoc и JavaTOC

Самая большая разница между стандартной справкой Javadoc и настраиваемой Eclipse Javadoc Help — это предоставленная навигация по оглавлению. Стандартный Javadoc Справка предоставляет несколько дополнительных фреймов, чтобы вы могли просматривать пакеты и классы. Настроенная справка Eclipse Javadoc Help содержит XML-код в стиле Eclipse. файлы навигации, а не лишние фреймы HTML.Стиль Eclipse Файлы навигации XML создают навигацию TOC, которая позволяет пользователю поиск определенного пакета, класса или интерфейса. Настроенный Eclipse Справочное решение Java API предоставляет манифесты навигации для документация, которая будет включена в справочную систему Eclipse.

Вся платформа Eclipse разработана на основе идеи подключаемых модулей. если ты хотите внести свои справочные документы на платформу Eclipse, у вас есть для разработки нового модуля справки.Плагин состоит из HTML и файлы изображений, файл оглавления в XML и файл манифеста. В Доклет JavaTOC автоматически генерирует весь плагин Eclipse структура, включая извлеченный файл оглавления навигации XML прямо из исходного кода Java.

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

Доклет JavaTOC интегрирован с инструментом DITAdoclet для IBM DITA Специализация API, разработанная для создания API Java DITA (XML) файлы для документирования и создания ссылок на Java API. Решение также включает манифесты навигации для справки по Java API документация, которая будет включена в справочную систему Eclipse.

Создана справочная структура Eclipse Javadoc API со стандартным инструментом Javadoc

Для доступа к стандартной онлайн-справке Javadoc в Eclipse вы можете выбрать Справка> Содержание справки в строке меню.Это вызывает онлайн-справка в собственном браузере.
На левой панели есть вкладка просмотр оглавления, поиска и контекстно-зависимых справочных ссылок. В в примере ниже, на рис. 1, показаны стандартные ссылки на API Javadoc. состав. Он был создан с использованием только стандартного инструмента Javadoc в Окружающая среда Eclipse.

Рис. 1. Ссылки на API Javadoc структура

Точка расширения орг.eclipse.help.toc идентифицирует это как плагин для справочная система.

Листинг 1. plug-in.xml
 
 

 <плагин>

  
   
  

 
Листинг 2. MANIFEST.MF
 Версия манифеста: 1.0
Пакет-манифест Версия: 2
Bundle-Name: Doc Plug-in
Bundle-SymbolicName: org.dita.dost.doc; singleton: = правда
Версия пакета: 1.0.0
Пакет-активатор: org.dita.dost.doc.DocPlugin
Bundle-Localization: плагин
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime
Eclipse-AutoStart: true 

или

Листинг 3. plug-in.xml
 
 

 <плагин
    name = "% Plugin.name"
    id = "org.dita.dost.user.doc"
    версия = "7.0.1.0"
    provider-name = "% Plugin.providerName">

  
   
  

 

Измените имя, идентификатор, версию и имя подключаемого модуля на значения подходит для вашего проекта.

Листинг 4. plugin.properties
 # NLS_MESSAGEFORMAT_VAR
# ================================================= =============================
# Онлайн-справка - Инструкция по переводу: раздел для перевода
# =================================================== ============================
Плагин.name = Создание вывода DITA
Plugin.providerName = IBM 

Ссылка на файл doclet.toc.xml как на оглавление для этот плагин; этот файл предоставит данные для иерархического информацию на левой панели окна справки Eclipse. Простой файл содержит что-то вроде того, что показано в листинге 2.

Листинг 5. doclet.toc.xml
 
 


   
 

Где href = «index.html» — ссылка на созданный ссылки javadoc api. Если вы хотите, чтобы на правой панели открывался документацию без HTML-фреймов, ссылка будет href = «overview-summary.html».

Стандартная организация панели навигации Javadoc

Стандартная панель навигации Javadoc не позволяет пользователю искать конкретный пакет, класс или метод.
Вот как навигация по вкладкам Javadoc организован и описан SUN Javadoc — Рисунок 2.

Рисунок 2. Вкладка Javadoc навигация

Чтобы создать файл комментария пакета, вы должны назвать его package.html и поместите его в каталог пакета в дереве исходного кода вместе с .java файлы. Javadoc будет автоматически искать это имя файла в этом место расположения. Обратите внимание, что имя файла одинаково для всех пакетов.

Содержимое файла комментариев пакета одно большое комментарий документации, написанный в HTML, как и все другие комментарии, с одно исключение:
Комментарий к документации не должен включать разделители комментариев / ** и * / или ведущие звездочки. При написании комментария вы должны сделать первое предложение резюме о пакете, и не помещайте заголовок или любой другой текст между и первое предложение.
Вы можете включать теги пакетов; как с любым комментарий к документации, все теги, кроме {@link} должны появляются после описания. Если вы добавите тег @see в файле комментариев к пакету он должен иметь полное имя.

SUN Javadoc будет генерировать вывод, исходящий из четыре различных типа «исходных» файлов:
исходный текст на языке Java файлы для занятий (.java), файлы комментариев к пакетам, обзорные комментарии файлы и прочие необработанные файлы.

Обзор
Страница обзора является первой страницей этого документа API и предоставляет список всех пакетов с кратким описанием для каждого. Эта страница также может содержат общее описание набора пакеты. НАБЛЮДЕНИЯ:
  • Не забудьте записать Javadoc уровня пакета в файл под названием Обзор.html. Этот файл нужно поместить в корень каталог, в котором существуют файлы кода. Javadoc способен получение этого файла и использование его содержимого
.
Пакет
Каждый пакет имеет страницу, которая содержит список его классов и интерфейсы, с резюме для каждого. Эта страница может содержать пять категории: Интерфейсы, классы, исключения, ошибки , и Константы.
НАБЛЮДЕНИЯ:
  • Не забудьте записать Javadoc уровня пакета в файл с именем package.html. Этот файл нужно поместить в каталог, в котором существуют файлы кода для этого пакета. Javadoc способен забрать этот файл и использовать его содержимое
.
Класс / интерфейс
Каждый класс, интерфейс, внутренний класс и внутренний интерфейс имеют свой собственный отдельная страница.Каждая из этих страниц состоит из трех разделов, описание класса / интерфейса, сводные таблицы и подробный член descriptions:
Каждая итоговая запись содержит первое предложение из подробного описания этого товара.
Сводные записи расположены в алфавитном порядке, а подробные описания в порядке они появляются в исходном коде. Это сохраняет логические группировки установлен программистом.
Использование
Каждый документированный пакет, класс и интерфейс имеют свою собственную страницу использования. Эта страница описывает, какие пакеты, классы, методы, конструкторы и поля используют любую часть данного класса или пакета.
Дерево (иерархия классов)
Для всех пакетов есть страница «Дерево» (иерархия классов), а также иерархия для каждого пакета. Каждая страница иерархии содержит список классы и список интерфейсов.
Устаревший
На странице Устаревший API перечислен весь API, который был объявлен устаревшим. Устаревший API не рекомендуется использовать, как правило, из-за улучшения, и обычно предоставляется заменяющий API. Устаревшие API могут быть удалены в будущих реализациях.
Индекс
Индекс содержит алфавитный список всех классов, интерфейсов, конструкторы, методы и поля.
Пред. / След.
Эти ссылки ведут к следующему или предыдущему классу, интерфейсу, пакет или связанную страницу.
Фреймы / Без фреймов
Эти ссылки показывают и скрывают фреймы HTML. Все страницы доступны с рамками или без них.

Создана справочная структура Eclipse Javadoc API с использованием JavaTOC doclet

Удовлетворены потребности в справочной документации по Java API с возможностью просмотра и поиска. с подходом структурированной информации, например, в XML с использованием Eclipse Документ JavaTOC и стиль справки Javadoc.

Чтобы включить навигацию в подключаемом модуле справки Eclipse, Разработчик должен предоставить оглавление (TOC) в формате XML. документ. В документации есть сворачиваемый указатель на слева, а документация HTML — справа. Файлы HTML могут быть создан с использованием Javadoc или специализации IBM DITA Java API.

Вы можете создать оглавление вручную или автоматически с помощью документа JavaTOC.Документ JavaTOC генерирует для вас структуру оглавления ссылок Java API. перечисление пакетов и содержащихся в них классов и интерфейсов.

Чтобы создать HTML-файлы справки по API, вы можете запустить инструмент Javadoc или использовать решение для специализации IBM DITA API для создания и генерации Java Справочные HTML-файлы API — Рисунок 3.

Рисунок 3. HTML-Kit редактор

Если вы используете документ JavaTOC, справочная документация по API с возможностью просмотра и поиска.Возможность поиска возможна из-за структурированный информационный подход (XML), который используется.

Один из положительных побочных эффектов использования XML для создания структуры справочная документация по API гласит, что контент будет автоматически проиндексировано для поиска; если вы используете стандартное решение Javadoc для создания контент, он не будет индексироваться по умолчанию для поиска.

Справочная структура Eclipse Java API и оглавление создание необходимых файлов

В следующих списках приведены примеры файлов TOC XML, используемых для сгенерируйте указанную выше структуру навигации оглавления по Java API.Файлы может быть сгенерирован вручную или автоматически с помощью документа JavaTOC. Увидеть раздел загрузки ниже, чтобы загрузить примеры XML-оглавления Java API. для Eclipse.

В следующем листинге показан пример справочника Eclipse Java API. плагин, который ссылается на один XML-файл оглавления.

Листинг 6. plug-in.xml
 
 

 <плагин>

  

  

  

 

В следующем листинге показан тот же пример Eclipse Java API. подключаемый модуль ссылки, который ссылается на более чем один файл TOC XML на основе Java структура пакета. При просмотре документации не будет разница между использованием одного или нескольких XML-файлов оглавления.

Листинг 7. плагин.xml
 
 

 <плагин
    name = "% Plugin.name"
    id = "org.dita.dost.user.doc"
    версия = "7.0.1.0"
    provider-name = "% Plugin.providerName">

  

   

    
    
    
    
    
    
    
    
    
    


  

 

Вы можете использовать элементы navref и anchor, а также элементы карты атрибут anchorref для создания точек интеграции в выводе Eclipse, где файл навигации втягивается или прикрепляется во время выполнения.Увидеть ресурсы Eclipse для получения дополнительной информации по созданию навигации Eclipse files

Листинг 8. doclet.toc.xml
 
 


   
        
        
        
        
        
        
        
        
        
        
 
 

Первичное оглавление XML должно иметь заголовок (метка в Eclipse) в заказать загрузку содержания справки.

Файл org.dita.dost.index.toc.xml — это просто еще одно оглавление, и должен иметь тот же формат, что и любой другой файл toc.xml.

Листинг 9. org.dita.dost.index.toc.xml
 
 


  
           <якорь />
    
    тема label = "IndexTermCollection"
    href = "doc / org / dita / dost / index / IndexTermCollection.html" />
    
    
  
 

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

В Eclipse 3.2 весь подключаемый модуль документации может поставляться как один файл jar. который включает в себя все файлы, которые войдут в файл doc.zip вместе с обычными файлами подключаемых модулей: manifest.mf, plug-in.xml, plug-in.properties и т. д. До Eclipse 3.2 сгенерированные файлы Javadoc будет храниться в файле doc.zip вместе со статическими файлами HTML и HTML-файлы схемы точки расширения.

Недокументированный код трудно или невозможно понять, нельзя использовать и неуправляемый.Доклет JavaToc — ценный инструмент. Я очень надеюсь, что эта статья поможет вам найти интерес к включению доклета JavaToc в ваш проект.

Уведомления

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

Информация, представленная в этом документе, не была передана никому формальный тест IBM и распространяется «КАК ЕСТЬ» без каких-либо гарантий, либо явно выраженные, либо подразумеваемые.
Использование этой информации или реализация любого из этих методов, описанных в этом документе, является ответственность читателя и зависит от его способности оценивать и интегрировать их в свою операционную среду.

Выводы

В будущей статье, Создана справочная структура Eclipse Java API с JavaTOC doclet опишет процесс для автоматическое создание справочной документации по Java API с возможностью поиска (TOC навигация) с помощью документа JavaTOC и справочной системы подключаемого модуля Eclipse. В следующих статьях этой серии мы также рассмотрим более подробно в технологии создания и генерации документации API и некоторых дополнительные усовершенствования от IBM, включая Java DITA API специализация и как ее можно использовать.

Ресурсы для загрузки
Связанные темы
  • См. Домашнюю страницу Javadoc для получения дополнительной информации о Инструмент Sun Microsystems Javadoc.
  • Изучите Doclet.com, репозиторий расширений Doclet для Javadoc инструмент.
  • The Sun tutorial «Как писать комментарии к документации Javadoc» Инструмент «описывает правила и философию Javadoc.
  • Язык Java использует интегрированный подход к API документацию через соглашение комментариев Javadoc. Читать Дэвида Статья Галлардо «Теория и практика Java: я должен задокументировать ЧТО? «И узнайте, как создавать подключаемые модули Eclipse с помощью Мастер создания кода Plug-in Development Environment.
  • Documentation Enhancer для Java от IBM alphaWorks — это инструмент, который улучшает файлы Javadoc, обогащая их с новой информацией (семантическая информация, сортировка и возможность навигации) который собирается путем статического анализа соответствующего класса Java файлы.
  • Загрузите SDK подключаемого модуля платформы Eclipse на странице загрузок проекта eclipse.
  • См. «Документирование вашего проекта с помощью справки Eclipse». system «, от IBM developerWorks.
  • Любой, кто интересуется Eclipse, найдет это учебное руководство, Eclipse Learning Guide, наполненное полезными указатели и полезные ссылки.
  • Присоединяйтесь к сообществу платформы Eclipse и загрузите платформу на eclipse.org.На eclipse.org вы также найдете глоссарий терминов и описаний. проектов Eclipse, а также технические статьи и группы новостей. В В техническом документе платформы Eclipse подробно описаны основные компоненты и функции Eclipse.

Язык Java — Документация по методам

Пример

Все комментарии Javadoc начинаются с комментария блока, за которым следует звездочка ( / ** ), и заканчиваются, когда появляется комментарий блока ( * / ).При желании каждая строка может начинаться с произвольного пробела и одной звездочки; они игнорируются при создании файлов документации.

  / **
 * Краткое описание метода, заканчивающееся точкой.
 *
 * Дальнейшее описание метода и его функций, включая все подробности.
 * соответствующий. Встроенные теги, такие как
 * Можно использовать {@code code here}, {@link some.other.Docs} и {@literal text here}.
 *
 * Если метод переопределяет метод суперкласса, {@inheritDoc} можно использовать для копирования
 * документация
 * из метода суперкласса
 *
 * @param stream Опишите этот параметр.Включите как можно больше подробностей
 * Документы с параметрами обычно выравниваются, как здесь, но это необязательно.
 * Как и в случае с другими документами, документация до первого периода
 * используется в качестве резюме.
 *
 * @return Опишите возвращаемые значения. Включите как можно больше подробностей
 * Документы возвращаемого типа обычно выравниваются, как здесь, но это необязательно.
 * Как и в случае с другими документами, документация до первого периода используется как
 *         резюме.*
 * @throws IOException Опишите, когда и почему может быть создано это исключение.
 * Документы исключений обычно выравниваются, как здесь, но это
 *                     по желанию.
 * Как и в случае с другими документами, документация до первого периода
 * используется в качестве резюме.
 * Вместо @throws также можно использовать @exception.
 *
 * @since 2.1.0
 * @ см. some.other.class.Documentation
 * @deprecated Опишите, почему этот метод устарел.Также может быть указана замена.
 * /
public String [] read (поток InputStream) выбрасывает IOException {
    return null;
}
  



ок http

перейти к содержанию

OkHttp Обзор

Инициализация поиска

    OkHttp

    OkHttp

    OkHttp

    • Обзор Обзор Содержание
      • Получить URL
      • Отправить на сервер
      • Требования
      • Релизы
      • MockWebServer
      • Собственный образ GraalVM
      • Лицензия
    • Переполнение стека ⏏
    • Звонки
    • Кеширование
    • Подключения
    • События
    • HTTPS
    • Перехватчики
    • Рецепты
    • Безопасность
    • Провайдеры безопасности
    • Работает с OkHttp
    • Обновление до OkHttp 4
    • 4.x API 4.x API

      Учебное пособие по основам Java: Javadoc

      ПОСМОТРЕТЬ КАТАЛОГ КУРСОВ

      Расписание виртуального класса (онлайн-обучение) Просмотреть полный каталог (1500+) Гарантия проведения курсов Курсы, соответствующие критериям получения ваучеров Просмотр курсов по местоположению Недавно добавленные курсы Государственные обучающие решения Варианты доставки Многонедельные курсы Bootcamp Комплект электронного обучения для мэйнфреймов НОВИНКА Программа цифровых значков Авторизованное образование HP Бизнес-анализ, Agile / Scrum и DevOps Облако, AWS, VMware и Citrix Коммуникационные и деловые навыки CompTIA, служба поддержки, Apple и настольные приложения Кибербезопасность, взлом и ИТ-аудит Базы данных, бизнес-аналитика и наука о данных Front-End веб и мобильная разработка Продукты IBM для мэйнфреймов, среднего уровня и независимых поставщиков ПО ITIL, управление и управление ИТ-услугами Java / Java EE, серверы с открытым исходным кодом и веб-приложения Инфраструктура и операционные системы Microsoft Microsoft Visual Studio.NET и SharePoint Управление проектами и портфелем Качество программного обеспечения, тестирование и инструменты TCP / IP, Cisco и сетевые технологии UNIX / Linux и Perl

      Начало работы с Java в Visual Studio Code

      В этом руководстве показано, как написать и запустить программу Hello World на Java с помощью Visual Studio Code.Он также охватывает несколько дополнительных функций, которые вы можете изучить, прочитав другие документы в этом разделе.

      Для обзора функций, доступных для Java в VS Code, см. Обзор языка Java

      Если вы столкнетесь с какими-либо проблемами, следуя этому руководству, вы можете связаться с нами, нажав кнопку Сообщить о проблеме ниже.

      Сообщить о проблеме

      Настройка VS Code для разработки на Java

      Пакет кодирования

      для Java

      Чтобы помочь вам быстро настроить, вы можете установить пакет кодирования для Java , который включает VS Code, Java Development Kit (JDK) и основные расширения Java.Coding Pack можно использовать как чистую установку, а также для обновления или исправления существующей среды разработки.

      Установите пакет кодирования для Java — Windows

      Установите пакет кодирования для Java — macOS

      Примечание : Пакет Coding Pack для Java доступен только для Windows и macOS. Для других операционных систем вам потребуется вручную установить расширения JDK, VS Code и Java.

      Установка расширений

      В качестве альтернативы, если вы уже являетесь пользователем VS Code, вы также можете добавить поддержку Java, установив Java Extension Pack, который включает следующие расширения:

      Если JDK не установлен, Java Extension Pack предоставляет ссылки для загрузки.

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

      Вы также можете выбрать, какие расширения вы хотите установить отдельно. Руководство по расширению поможет вам сделать выбор. Вы можете запустить руководство с помощью команды Java: Extension Guide .

      Для этого руководства требуются только расширения:

      Поддерживаемые версии Java

      Поддерживаемые версии для запуска VS Code для Java и поддерживаемые версии для ваших проектов — это две разные концепции.Для запуска VS Code для Java требуется Java SE 11 или более поздняя версия; для проектов VS Code for Java поддерживает проекты с версией 1.5 или выше. Дополнительные сведения см. В разделе Настройка JDK.

      Установка Java Development Kit (JDK)

      В вашей среде разработки должен быть установлен Java SE Development Kit (JDK). Если этого не произошло, вы можете загрузить и установить JDK из одного из следующих источников:

      Настройка среды разработки для использования JDK

      Ваша среда разработки должна знать, где находится JDK.Обычный способ сделать это — установить в качестве значения системной переменной среды JAVA_HOME место установки JDK, например C: \ Program Files \ Java \ jdk-13.0.2 . Или, если вы хотите настроить только VS Code для использования JDK, используйте параметр java.home в настройках пользователя или рабочей области VS Code.

      Настройки для JDK

      Чтобы получить доступ к различным настройкам для использования JDK, откройте палитру команд (⇧⌘P (Windows, Linux Ctrl + Shift + P)) и используйте команду Java: настроить среду выполнения Java .

      Пакет расширений Java также содержит краткое руководство и советы по редактированию и отладке кода. Здесь также есть FAQ, в котором есть ответы на некоторые часто задаваемые вопросы. Используйте команду Java: Начало работы из палитры команд (⇧⌘P (Windows, Linux Ctrl + Shift + P)).

      Примечание : Чтобы настроить несколько JDK, см. Настройка JDK. Чтобы включить функции предварительного просмотра Java, см. Как я могу использовать VS Code с новыми версиями Java

      .

      Создание файла исходного кода

      Создайте папку для вашей программы Java и откройте папку с VS Code.Затем в VS Code создайте новый файл и сохраните его с именем Hello.java . Когда вы открываете этот файл, Java Language Server автоматически начинает загрузку, и вы должны увидеть значок загрузки в правой части строки состояния. После завершения загрузки вы увидите значок с изображением большого пальца вверх.

      Примечание : Если вы откроете файл Java в VS Code, не открывая его папку, Java Language Server может работать неправильно.

      VS Code также попытается определить правильный пакет для нового типа и заполнить новый файл из шаблона.См. Создание нового файла.

      Вы также можете создать проект Java с помощью команды Java: Create Java Project . Откройте палитру команд (⇧⌘P (Windows, Linux Ctrl + Shift + P)), а затем введите java для поиска этой команды. После выбора команды вам будет предложено указать расположение и имя проекта. Вы также можете выбрать свой инструмент сборки с помощью этой команды.

      Visual Studio Code также поддерживает более сложные проекты Java, см. Управление проектами.

      Редактирование исходного кода

      Вы можете использовать фрагменты кода для создания шаблонов для ваших классов и методов. VS Code также предоставляет IntelliSense для завершения кода и различные методы рефакторинга.

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

      Запуск и отладка вашей программы

      Для запуска и отладки кода Java установите точку останова, затем нажмите F5 на клавиатуре или используйте пункт меню Выполнить > Начать отладку . Вы также можете использовать параметры Run | Debug CodeLens в редакторе.После компиляции кода вы можете увидеть все свои переменные и потоки в представлении «Выполнить».

      Отладчик также поддерживает расширенные функции, такие как замена Hot Code и условные точки останова.

Post A Comment

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