Андрей Дмитриев Февраль 2008 Инструментарий JDK. 2 Что такое Java? Язык программирования. Среда разработки. Платформа. Сообщество разработчиков. Технологии.

Презентация:



Advertisements
Похожие презентации
Платформа Java SE: введение Андрей Дмитриев
Advertisements

1 Java. Введение JDK, JRE, JVM, IDE Ерофеева Елена Анатольевна ассистент кафедры МПУ.
Цель проекта: Просмотрев презентацию, вы узнаете: Что такое Исполнитель; Что означает понятия программы и программирования; Как классифицируется программное.
Встроенная документация Java Андрей Дмитриев Инженер-программист Sun Microsystems Февраль 2008.
Программная инженерия Дмитриев Андрей Владиславович
Вперёд ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЦЕЛИ: ЦЕЛИ: 1. Средство для задания действий, которые должны быть выполнены машиной.(Машинный язык) 1. Средство для задания.
Виртуальная машина Java Андрей Дмитриев 2008.
Администрирование ИС Администрирование DNS. Установка сервера DNS DNS-сервер представляет собой дополнительную компоненту операционной системы Windows.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Полиморфизм Полиморфизм (polymorphism) - последний из трех "китов", на которых держится объектно-ориентированное программирование Слово это можно перевести.
Программная инженерия Дмитриев Андрей Владиславович
Реализация концепции построения и формирования отраслевой системы государственного учета, регистрации и мониторинга (ОСГУРМ) информационных ресурсов сферы.
ФАКУЛЬТАТИВ №001. IDE Delphi ЭЛЕМЕНТЫ ИНТЕРФЕЙСА Delphi.
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
операционные системы операционные оболочки – интерфейсные системы, драйверы (программы, управляющие работой внешних устройств) утилиты (служебные программы)
EXtreme Programming XP Тема 7. XP Ant – инструмент для создания, развертывания, запуска программ Java, создания базы данных, выполнения различных проверок.
Выполнил: Гусев Данил. Что такое программное обеспечение? Возможности современного ПК столь велики, что все большее число людей находят ему применение.
Владимир Костюков, АлтГТУ АлтГТУ им И. И. Ползунова Распределенная система мониторинга и диспетчерезации процессов гетерогенной среды.
Транксрипт:

Андрей Дмитриев Февраль 2008 Инструментарий JDK

2 Что такое Java? Язык программирования. Среда разработки. Платформа. Сообщество разработчиков. Технологии.

3 Как устроен процесс разработки программы Исходный код Java Компилятор Java Объектный код Java (байт-код) JVM Интепретатор Java ОС Объектный код проверяется и загружается в виртуальную машину Java Программа выполняется интерпретатором Интерпретатор взаимодействует с ОС конкретной машины

4 Что такое JDK? Java Development Toolkit. Платформа Java как среда разработки представляет собой инструментарий и набор утилит, позволяющий создавать Java приложения.

5 Программа Стандартные инструменты и утилиты JDK Экспериментальные инструменты и утилиты JDK

6 Базовый инструментарий javac – компилятор языка Java. java – интерпретатор байт-кода. javah - создает заголовочные файлы. javadoc - формирует стандартную документацию. jar – создание дистрибутивов Java. javap – дизассемблер. apt – обработчик аннотаций. Другие базовые инструменты (appletviewer, jdb, extcheck).

7 javac (компилятор языка Java) Преобразует исходный код в промежуточный байт-код. Пример компиляции: javac myClass.java После выполнения данной команды будет создан файл myClass.class в той же директории, где расположен файл с исходным кодом, myClass.java. Все параметры компиляции (в том числе расположение обоих файлов) можно конфигурировать при помощи опций. Полученный в результате байт-код не может быть выполнен непосредственно (как.exe файл). Его может выполнить лишь интерпретатор java.

8 Параметры компиляции Параметры компиляции можно изменять при помощи ключей компилятора javac: -cp –classpath указать путь, по которому можно найти классы, необходимые для компиляции (переменная CLASSPATH) -bootclasspath указанть путь, по которому можно найти классы, необходимые для запуска JVM -sourceуказать версию исходного кода -target указать версию JVM, для которой создается класс- файл -versionвывести версию компилятора -helpперечень разрешенных опций компилятора -J-J свойство, передаваемое в JVM. Виртуальная машина может изменять свое поведение в зависимости от переданных параметров. -Xдополнительные опции

9 Расширенные параметры компиляции -Xbootclasspath/a (/p) Заменить классы, необходимые для запуска компилятора. -Xmaxerrs/-Xmaxwarns Установить максимальное число выводимых ошибок/предупреждений. -Xlint Выводить предупреждения о некорректном коде программы. -Xcheck:jni Дополнительные проверки для JNI кода. -Xstdout Перенаправление вывода программы.

10 java ( интерпретатор байт-кода) Запускает среду выполнения Java (Java Runtime Environment, JRE), загружает указанный класс и вызывает метод main данного класса. Примеры запуска: > java myClass.class > java –jar myArchive.jar SomeArgument Можно передавать аргументы приложению и указывать опции запуска в командной строке.

11 Параметры запуска -cp(-classpath)указание пути, по которому содержатся классы, необходимые для запуска -D-Dустановка системного свойства -X-Xрасширенные параметры -agentlibзагрузка отладочного агента -javaagentзагрузка Java агента -client/-serverвыбор клиентской или серверной модификаций JVM Параметры исполнения можно изменять при помощи ключей интерпретатора, передаваемых java:

12 Расширенные параметры запуска -Xbootclasspath/a (/p)замена классов, необходимых для запуска приложения -Xnoclassgcотключение удаления объектов -Xincgcвключение инкрементального сборщика мусора -Xloggcжурнализация сборщика мусора -Xms/-Xmxустановка размера heap области (начальный/максимальный размеры) -Xssустановка размера стека -Xcheck:jniдополнительные проверки JNI вызовов

13 javah Генерирует заголовочные файлы и файлы-заглушки на языке С на основе Java классов. Данные файлы позволяют наладить взаимодействие кода на Java и на С или С++. Название заголовочного файла и структуры, в нем описанной, основывается на имени Java класса с учетом пакета. Технология Java Native Interface (JNI), позволяет общаться с чужим кодом без заголовочных файлов и заглушек. Для отладки следует использовать утилиту javah_g (неоптимизированную версию javah). javah [ options ] fully-qualified-classname... javah_g [ options ] fully-qualified-classname...

14 javadoc Генерирует документацию к программному интерфейсу приложения. Предпосылки: > Для обеспечения поддержки код должен быть хорошо документирован. > Найти нужную информацию непосредственно в коде не всегда просто. > Нужен инструмент, собирающий разбросанные по коду комментарии и предоставляющий удобную навигацию по ним. От разработчика требуется: > придерживаться несложных правил написания комментариев (чтобы Javadoc правильно их интерпретировал), > запускать утилиту Javadoc для создания и обновления документации.

15 javadoc (продолжение) По умолчанию Javadoc генерирует документацию для: Пакетов Public классов и интерфейсов Public и protected методов Public и protected полей При необходимости документировать private классы/методы/поля, можно указать ключ -private. Внутри текста комментария можно использовать специальные тэги. Стандартные теги HTML допустимы. Запуск утилиты: javadoc [options] [packagenames] [sourcefiles]

16 javadoc (пример) Используется формат HTML:

17 Jar (Java ARchive) Утилита для создания дистрибутивов Java программ. Пример: % jar cf myApp.jar *.class > Все файлы текущей директории с расширением.class собираются в архив myApp.jar. При этом автоматически создается манифест, содержащий мета-информацию о приложении. Использует алгоритм Zip. Также можно сделать JAR файл самораспаковывающимся. > Запакованное приложение можно запустить двойным щелчком. JAR файлы могут быть подписаны автором.

18 javap (дизассемблер) Разбирает класс-файл. Выводимая информация варьируется в зависимости от используемых опций. По умолчанию javap выводит название пакета, а также protected и public поля и методы анализируемого класса. Запуск утилиты из командной строки: javap [ options ] class... Пример вывода информации о классе: Compiled from DocFooter.java public class DocFooter extends java.applet.Applet { java.lang.String date; java.lang.String ; public DocFooter(); public void init(); public void paint(java.awt.Graphics); }

19 Пример вывода байт-кода класса javap –c позволяет оценить структуру и сложность класс файла. public ThreeD(); Code: 0:aload_0 1:invokespecial#1; //Method java/applet/Applet." ":()V 4:aload_0 5:iconst_1 6:putfield#2; //Field painted:Z 9:aload_0 10:fconst_1 11:putfield#3; //Field scalefudge:F 14:aload_0 15:new#4; //class Matrix3D 18:dup 19:invokespecial#5; //Method Matrix3D." ":()V 22:putfield#6; //Field amat:LMatrix3D; 25:aload_0 26:new#4; //class Matrix3D 29:dup 30:invokespecial#5; //Method Matrix3D." ":()V 33:putfield#7; //Field tmat:LMatrix3D; 36:aload_0 37:aconst_null 38:putfield#8; //Field mdname:Ljava/lang/String; 41:aload_0 42:aconst_null 43:putfield#9; //Field message:Ljava/lang/String; 46:return

20 javap - опции -package Показывает пакет, в котором расположен класс, а также его -protected и -public поля и методы. Данная опция используется по умолчанию. -public (-protected) Показывает только -public (-protected и -public) классы и члены классов. -private Показывает все классы и члены классов. -verbose Выводит на печать размер стека, число локальных переменных, и параметров методов. -s Выводит на печать сигнатуры внутренних типов.

21 Другие базовые инструменты apt Утилита обработки аннотаций. appletviewer Запуск и отладка апплетов без веб-браузера. jdb Отладчик Java. extcheck Утилита для обнаружения конфликтов Jar.

22 Инструментарий обеспечения безопасности keytool Управление сертификатами и хранилищами ключей. jarsigner Создание и проверка подписей архивов JAR. policytool Утилита с графическим интерфейсом, позволяющая управлять файлами политик. Установка собственных политик безопасности. Использование политик безопасности, заданных на удаленных сайтах.

23 Инструментарий обеспечения безопасности (продолжение) kinit Утилита просмотра удостоверений Kerberos v5. klist Утилита командной строки, позволяющая работать со списком записей в кэше удостоверений. ktab Утилита командной строки, помогающая пользователю управлять записями в таблице ключей. Представленные инструменты системы безопасности помогут просматривать и управлять удостоверениями Kerberos.

24 Инструментарий интернационализации native2ascii Смена кодировки текста на Unicode Latin-1. Данный инструмент помогает создавать локализуемые приложения.

25 Инструментарий развертывания приложений Утилиты, используемые для развертывания java приложений и паллетов в сети. pack200Преобразует файл JAR в сжатый файл pack200 при помощи системы сжатия данных gzip. unpack200Преобразует архив, полученный при использовании pack200, в архив JAR. Пересылаемые архивы представляют собой архивы JAR, которые сжаты сильнее чем обычно и при этом могут быть непосредственно развернуты средой исполнения. За счет уменьшения размера файла, снижается время загрузки.

26 Инструментарий подключения плагинов unregbean Снимает регистрацию компонента JavaBeans; использует Active X. htmlconverter Преобразует страницу (файл) HTML, содержащую апплет в формат OBJECT / EMBED для Java Plug-in. Утилиты, используемые совместно с Java Plug- in.

27 Инструментарий удаленного вызова методов rmic Генерация заглушек и каркасов для удаленных объектов. rmiregistry Сервис регистрации удаленных объектов. rmid Системный демон активации RMI. serialver Получение класса serialVersionUID. Данные инструменты позволяют создавать приложения, взаимодействующие между собой через веб-интерфейс или интерфейс любой другой сети.

28 Консоль контроля выполнения приложений pid Идентификатор процесса локальной JVM. Идентификатор пользователя должен быть одним и тем же для JVM и jconsole. host:port Имя хоста, на котором запущена JVM и номер порта. jmxUrl Адрес агента JMX с которым следует установить соединение. Графический инструмент, удовлетворяющий стандарту JMX, для мониторинга виртуальной машины Java. Позволяет следить за работай как локальной, так и удаленной JVM. Также помогает следить за работой приложения и управлять ею. Запускается следующей командой: jconsole [ options ] [ connection... ] connection = pid | host:port | jmxUrl

29 Инструментарий веб-сервисов schemagen Генератор схем в архитектуре XML связываний Java. Wsimport, wsgen Инструменты для генерации переносимых приложений JAX-WS. xjc Компилятор связываний в архитектуре XML связываний Java. Обеспечивает легкую интеграцию веб-сервисов и веб-клиентов. Позволяет прозрачно использовать формат XML для передачи информации.

30 Экспериментальные инструменты Инструментарий мониторинга (jps, jstat, jstatd) Инструменты диагностики ошибок (jinfo, jhat, jmap, jsadebugd, jstack) Инструменты работы со скриптами (jrunscript)

31 Инструментарий мониторинга jps Отслеживает состояние процессов JVM (JVM Process Status Tool) - Выводит список виртуальных машин Java (HotSpot) в интересующей системе. jstat Утилита для ведения статистики по JVM (JVM Statistics Monitoring Tool) - Подключается к оборудованной виртуальной машине Java (HotSpot), собирает и заносит в журнал статистику по производительности. jstatd Демон утилиты JVM jstat - загружает приложение RMI сервера, отслеживающее создание и завершение работы виртуальной машины Java (HotSpot). Может быть использован для учета статистических показателей производительности JVM. Данные инструменты работают на всех современных платформах.

32 Инструменты диагностики ошибок jinfo Конфигурационная информация Java (Configuration Info for Java) - Выводит конфигурационную информацию для заданного процесса, файла памяти или удаленного сервера отладки. jstat Средство просмотра дампа кучи (Heap Dump Browser) - Стартует веб-сервис для файла, содержащего дамп кучи (например, созданного утилитой jmap с опцией -dump), позволяя просматривать содержимое кучи. jmap Карта памяти Java - Выводит карты памяти разделяемых объектов или детали памяти кучи для заданного процесса, файла памяти или удаленного сервера отладки.

33 Инструменты диагностики ошибок (продолжение) jsadebugd Демон отладки агента, занимающегося удобством эксплуатации приложения (Serviceability Agent Debug Daemon for Java) - Подключается к процессу или файлу памяти и действует в качестве сервера отладки. jstack Трассировщик стека Java (Stack Trace for Java) - Выводит историю стека потоков для заданного процесса, файла памяти или удаленного сервера отладки.

34 Инструменты работы со скриптами jrunscript Оболочка для скриптов в Java (Script shell for Java) - Запускает скрипт. Может быть использован для запуска скриптов, взаимодействующих с платформой Java.

35 Ссылки Технические статьи: > > > ment/jconsole.html

Q&A

Февраль 2008 Инструментарий JDK Спасибо!