к оглавлению   к 4GL - визуальному программированию

Компиляция приложений с помощью JVC

JVC.EXE (JVC) — компилятор Microsoft для Java. По умолчанию формирует файлы с расширением CLASS, выполняемые на любой виртуальной машине Java. Однако JVC позволяет создавать и приложения, оптимизированные для Windows-платформ. Подробнее о создании Windows-приложений в Visual J++ см. главу 19 «Написание Windows-приложений с использованием J/Direct».

Параметры компилятора для своего проекта Вы указываете на вкладке Compile диалогового окна свойств проекта; там же — в поле Additional compiler options — можно задать и дополнительные параметры компиляции. Подробнее на эту тему см. раздел «Настройка параметров компилятора» главы 1 «Создание проектов».

Справочную информацию по параметрам командной строки JVC см. в разделе «Параметры командной строки JVC» далее в этой главе.

Синтаксис командной строки JVC

В командной строке JVC.EXE (JVC) используется следующий синтаксис: JVC [параметры] <имя_файла>

Элемент

Описание

параметры

Один или несколько параметров JVC. Подробнее см. раздел «Настройка параметров проекта» главы 1 «Создание проектов» и раздел «Параметры командной строки JVC» далее в этой главе.

Примечание Любой параметр действует на все заданные исходные файлы.

имя_файла

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

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

Примечание Будущие версии Microsoft Windows, возможно, не будут ограничивать длину командной строки 1024 символами.

Любые параметры, передаваемые JVC, должны предшествовать именам JAVA-файлов.

Синтаксис имен файлов

JVC требует следующего синтаксиса имен файлов:

Частичный путь не содержит имени диска; JVC в этом случае использует текущий диск. Если путь вообще не указан, JVC ищет файл в текущем каталоге.

Примечание Если у файла нет расширения, то JVC рассматривает его как файл с расширением JAVA.

Компиляция с помощью JVC.EXE

JVC.EXE обеспечивает компиляцию исходных JAVA-файлов в CLASS-файлы, выполняемые виртуальной машиной Java. Если Вам нужна лишь синтаксическая проверка исходного текста программы, используйте параметр /nowrite — тогда CLASS-файлы не создаются. Параметры JVC можно задать как из командной строки, так и из среды программирования. Если Вы компилируете Java-проект в среде Visual J + +, укажите требуемые параметры JVC в поле Additional compiler options на вкладке Compile. А если Вы компилируете Java-проект из командной строки, задайте параметры JVC в командной строке перед именами JAVA-файлов.

Порядок параметров JVC

Параметры командной строки компилятора JVC должны предшествовать именам исходных JAVA-файлов. JVC считывает командную строку слева направо и последовательно обрабатывает параметры. Любой параметр действует на все файлы, указанные в командной строке. Если JVC обнаруживает конфликтующие параметры, приоритет отдается тому из них, который расположен правее.

Командные файлы JVC

Командный файл — это текстовый файл со списком имен файлов, который иначе пришлось бы набирать в командной строке. JVC принимает его как аргумент в командной строке. Используя командные файлы, учитывайте следующие требования:

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

Переменная окружения CLASSPATH

Переменная окружения CLASSPATH определяет местонахождение CLASS-файлов по умолчанию. Компилятор Java (JVC), средства просмотра (JView и WJView) и виртуальные машины используют информацию, содержащуюся в переменной окружения CLASSPATH, при компиляции и запуске Java-программ. Если компиляция осуществляется из командной строки, указывайте параметры /ср:р и /ср:а — они позволяют расширять информацию, которая хранится в CLASSPATH.

Примечание Параметры JVC, JView и WJView действуют только в рамках текущей компиляции; их надо указывать при каждом запуске этих средств.

Новое значение CLASSPATH, установленное из командной строки, действует до перезагрузки операционной системы. Однако параметры /ср, /ср:р и /ср:а компилятора JVC и средств просмотра JView и WJView позволяют модифицировать или подменять переменную окружения CLASSPATH на время компиляции или просмотра Java-программы.

Примечание В Microsoft Windows каталоги в CLASSPATH отделяются точкой с запятой.

Присваивая значение переменной окружения CLASSPATH из командной строки, используйте такой синтаксис: SET CLASSPATH = <путь>

CLASSPATH и Java Package Manager (JPM)

При установке виртуальная машина Java регистрирует информацию о всех Java-пакетах с помощью Java Package Manager (JPM) и вносит в раздел реестра HKEY_LOCAL_ MACHINE\Software\Microsoft\Java

VM\Classpath следующие значения CLASSPATH:

Windows 95 C:\WIN95\java\classes\classes.zip; C:\WIN95\java\classes;.;

Window NT C:\WINNT\java\classes\classes.zip; C:\WINNT\java\classes;.;

При запуске Java-программ виртуальная машина, отыскивая файлы с расширением CLASS, просматривает источники, указанные ниже и именно в таком порядке.

  1. Пути, заданные в командной строке.

Примечание Чтобы указать пути для JVC, JView и WJView, используйте параметры /ср, /ср:р и /ср:а.

  1. Раздел реестра DevClasspath.

Примечание Раздел реестра DevClasspath позволяет разработчикам, создающим новые пакеты, замещать уже установленные в базе данных JPM. Благодаря этому они могут собирать свои пакеты в отдельном каталоге, а пакеты, зарегистрированные в JPM, не конфликтуют с первыми. Подробнее о Java Package Manager см. его документацию.

  1. Базу данных JPM.

Примечание Если Ваша программа запускается из среды Visual J++, то виртуальная машина при поиске CLASS-файлов учитывает информацию, введенную на вкладке Classpath диалогового окна свойств проекта, открываемого из меню Project. Подробнее о Java Package Manager см. его документацию.

  1. Разделы реестра TrustedClasspath, TrustedLibsDirectory, Classpath и LibsDirectory.
  2. Переменную окружения CLASSPATH.

Параметры командной строки JVC

Здесь рассмотрены все параметры командной строки JVC (в алфавитном порядке). Они сведены в таблицу, представленную ниже. Если параметр командной строки допускает один или несколько аргументов, его синтаксис показывается под заголовком «Синтаксис».

Допустимые параметры командной строки JVC

/ср — установка

/gv — генерация

/nowrite —

/verbose —

CLASSPATH

отладочной информации

установка режима компиляции без записи

включение вывода сообщений компилятора

/cр:о — вывод содержимого

/g:l — генерация информации о

/О — включение оптимизации

/w — установка

CLASSPATH

номерах строк


уровня предупреждений

/ср:р — добавление пути перед путями, заданными

/g:t — генерация отладочных таблиц

/О:I — оптимизация подстановкой кода методов

/х — отключение расширений

в CLASSPATH



языка

/d — определение

/nologo — подав-

/O:J — оптими-

/? — вывод

выходного каталога

ление вывода эмблемы с авторскими правами

зация переходов в байтовом коде

подсказки по списку параметров

/D — определение символа условной компиляции

/nowarn — подавление вывода предупреждений

/ref — перекомпиляция используемых классов


Все перечисленные здесь параметры можно задать в иоле Additional compiler options на вкладке Compile диалогового окна свойств проекта, открываемого из меню Project, или в командной строке перед именами исходных файлов.

/ср - установка CLASSPATH (JVC)

Синтаксис

/ср пути_к_классам

Позволяет задавать пути к классам для текущей компиляции. Он определяет путь, по которому JVC ищет системные и пользовательские классы. Виртуальная машина Java при поиске системных классов использует переменную окружения CLASSPATH и Java Package Manager. Подробнее о Java Package Manager см. его документацию в Microsoft SDK for Java.

Примечание В Microsoft Windows каталоги в CLASSPATH отделяются точкой с запятой.

Пример

При компиляции файла myClass.java в Windows NT (версии 4.0 или выше) путь к классу может быть таким:

JVC /ср х:.;x:\java\classes myClass.Java

В этом примере JVC ищет системные и пользовательские классы в текущем каталоге и его подкаталогах, а также в каталоге x:\java\classes.

/ср:о - вывод содержимого CLASSPATH (JVC)

Заставляет компилятор вывести содержимое CLASSPATH на стандартное устройство вывода. Он особенно полезен при выявлении таких ошибок, как «class not found» (класс не найден) — они возникают при компиляции из командной строки.

Пример

В следующем примере пути к классам выводятся на экран:

JVC /cp:o

/ср:р — добавление пути перед путями, заданными в CLASSPATH (JVC)

Синтаксис

/ср:р путь

Добавляет путь перед путями, содержащимися в переменной окружения CLASSPATH, и отделяет его точкой с запятой. Если указано несколько параметров /ср:р, пути объединяются.

Примечание Переменная окружения CLASSPATH ил'и параметр /ср указывают местонахождение CLASS-файлов. Описание этой переменной см. в разделе «Переменная окружения CLASSPATH» ранее в этой главе.

Пример

Следующая команда вставляет каталог myproj перед уже существующими путями к классам:

JVC /ср:р myproj

А эта команда вставляет перед путями, указанными в переменной окружения CLASSPATH, каталоги myprojl и myproj2:

JVC /cp:p myprojl /cp:p myproj2

/d - определение выходного каталога (JVC)

Синтаксис

IA каталог

При компиляции JAVA-файлов позволяет задать отличный от текущего выходной каталог для CLASS-файлов. Если такого каталога нет, JVC его создает. Если данный параметр опущен, JVC сохраняет CLASS-файлы в каталогах, содержащих соответствующие JAVA-файлы.

Пример

Следующая команда компилирует файл myClass.java в файл myClass.class и сохраняет конечный файл в каталоге classdir:

JVC /d c:\classdir myClass.java

Внимание Виртуальная машина Java полагается на присутствие специфических каталогов Java-классов, имена которых формируются по именам Java-пакетов с CLASS-файлами. Использование этого параметра приведет к ошибке, если виртуальная машина не найдет классов, нужных для запуска Java-программы. О том, как виртуальная машина ищет CLASS-файЛы, см. раздел «Переменная окружения CLASSPATH» ранее н этой главе.

/D - определение символа условной компиляции

Синтаксис

/D идентификатор

Заставляет компилятор рассматривать указанный идентификатор как символ условной компиляции для всех файлов, обрабатываемых в данный момент. Проверить, определен ли такой символ в исходном JAVA-файле, позволяет директива #if. Подробнее на эту тему см. приложение Б «Условная компиляция».

Пример

Следующая команда компилирует файл myClass.java, определяя для препроцессора символы WINDOWS и DEBUG:

JVC /D WINDOWS /D DEBUG myClass.java

/g - генерация отладочной информации (JVC)

Синтаксис

/g[-]

Заставляет компилятор генерировать всю отладочную информацию. По умолчанию отладочная информация не генерируется. Параметр /g дает тот же эффект, что и комбинация следующих двух параметров.

Параметр Действие

/g:l Генерируется информация о номерах строк

/g:t Формируются отладочные таблицы

Примечание Чтобы отключить этот параметр, поставьте за ним знак «минус».

Пример

Следующая команда создает CLASS-файл с именем myClass.class, содержащий отладочную информацию: JVC /g myClass.java

/g:l - генерация информации о номерах строк (JVC)

Синтаксис

/g:l[-]

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

Примечание Чтобы отключить этот параметр, поставьте за ним знак «минус».

Пример

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

JVC /g:l myClass.java

/g:t - генерация отладочных таблиц (JVC)

Синтаксис

/g:t[-]

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

Примечание Чтобы отключить этот параметр, поставьте за ним знак «минус»

Пример

Следующая команда указывает компилятору JVC включить в конечный файл myClass.class отладочные таблицы:

JVC /g:t myClass.java

/nologo - подавление вывода эмблемы с авторскими правами

Синтаксис

/nologo

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

Пример

Следующая команда сообщает компилятору обработать файл myClass.java без вывода эмблемы с авторскими правами:

JVC /nologo myClass.java

/nowarn - подавление вывода предупреждений

Синтаксис

/nowarn

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

Пример

Следующая команда сообщает компилятору обработать файл myClass.java без вывода каких-либо предупреждений:

JVC /nowarn myClass.java

/nowrite - установка режима компиляции без записи (JVC)

Синтаксис

/nowrite

Сообщает компилятору JVC обработать JAVA-файл, не создавая конечный CLASS-файл. Этот параметр полезен для проверки синтаксических ошибок в исходном коде.

Пример

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

JVC /nowrite myClass.java

/О - включение оптимизации (JVC)

Синтаксис


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

Параметр Действие

/О:I Оптимизация подстановкой кода методов (где возможно)

/O:J Оптимизация переходов в байтовом коде (включена по умолчанию)

Примечание Чтобы отключить оптимизацию, поставьте за параметром /О знак «минус».

Пример

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

JVC /О myClass.java

/0:I - оптимизация подстановкой кода методов (JVC)

Синтаксис

/0:I

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

Примечание Чтобы отключить этот параметр, поставьте за ним знак «минус».

Пример

В следующем примере компилятор анализирует исходный текст в файле myClass.java и везде, где это возможно, подставляет код методов. Конечный файл myClass.class содержит оптимизированный код.

JVC /0:1 myClass.java

/0:J - оптимизация переходов в байтовом коде (JVC)

Синтаксис

/0:J

Заставляет компилятор JVC оптимизировать переходы в байтовом коде, помещаемом в конечный CLASS-файл. Этот параметр оптимизации включен по умолчанию.

Примечание Чтобы отключить этот параметр, поставьте за ним знак «минус».

Пример

В следующем примере компилятор анализирует исходный текст в файле myClass.java и оптимизирует переходы в байтовом коде для повышения его эффективности.

Конечный файл myClass.class содержит оптимизированный код.

JVC /0:J myClass.java

/ref - перекомпиляция используемых классов

Синтаксис

/ref[-]

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

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

Внимание Включать этот параметр в среде программирования не рекомендуется — сборка проекта может закончиться некорректно.

Пример

Следующая команда заставляет компилятор обработать файл myClass.java без перекомпиляции используемых классов:

JVC /ref- myClass.java

/verbose - включение вывода сообщений компилятора (JVC)

Синтаксис

/verbose

Заставляет компилятор JVC выводить все сообщения при компиляции файла или проекта. Эти сообщения дают представление о ходе компиляции.

/w - установка уровня предупреждений (JVC)

Синтаксис

/w0

/wl

/w2

/w3

/w4

 

/wx

Управляют выводом предупреждений, генерируемых компилятором. Компилятор определяет, надо ли выводить предупреждение, исходя из уровня его значимости (severity level). Эти параметры влияют лишь на исходные файлы, указанные в командной строке.

Предупреждениям компилятора присваиваются номера, начинающиеся с J5. Описание предупреждений, уровней их значимости и потенциальных проблем (не относящихся к ошибкам кодирования) с операторами, которые могут компилироваться не так, как Вы ожидали, см. в документации. Назначение каждого из параметров рассматривается в следующей таблице.

Параметр

Действие

/w0

/wl

/w2

 

/w3

Отключает все предупреждения.

Разрешает вывод наиболее серьезных предупреждений.

Разрешает вывод предупреждений >с уровнем значимости ниже 1. Это уровень по умолчанию.

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

/w4

/wx

Разрешает вывод наименее серьезных предупреждений.

Заставляет интерпретировать предупреждения как ошибки. Генерация любого предупреждения заставит компилятор сообщить об ошибке и прекратить компиляцию. Этот параметр можно использовать совместно с одним из перечисленных выше.

 

/х - отключение расширении языка (JVC)

Синтаксис

/x[-]

Компилятор Visual J+ + поддерживает не только спецификацию языка Java, но и ряд расширений, выходящих за рамки этой спецификации. Эти расширения доступны по умолчанию; чтобы отключить их, укажите параметр /х.

Параметр /х необходим, если Вы собираетесь переносить свою программу на другие платформы. Он заставляет компилятор обрабатывать дополнительные ключевые слова как обычные идентификаторы и отключает остальные расширения, введенные Microsoft.

Примечание Чтобы отключить этот параметр, поставьте за ним знак «минус».

Пример

В следующем примере игнорируются все расширения Visual J++, использованные в файле myClass.class:

JVC /x myClass.java

/? - вывод подсказки по списку параметров (JVC)

Синтаксис

/?

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

к оглавлению   к 4GL - визуальному программированию

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution