[Назад]
[Вперед]
Виктор Кон, vkBook, Java-First
Конец первой серии
Итак, я надеюсь, что вам удалось успешно прокомпилировать программу и посмотреть
ее в работе. Лично у меня все получилось хорошо, хотя если честно, по ходу пришлось
исправлять ошибки. Но к вам текст попал уже без ошибок. Как исправлять ошибки.
Это достаточно очевидная процедура. Компилятор очень хорошо комментирует ошибки и
показывает места, где он их зафиксировал. Есть ошибки грамматики, но есть и runtime
ошибки, то есть, например, забыли записать файл First.ini, а программе надо
его читать. Такие ошибки понятны и легко исправимы. О более сложных ошибках пока
говорить не будем. Пока вы со мной, вам это не грозит.
В чем неудобство созданной программы. Она имеет много файлов с расширением class.
Точнее у нас приемлемо, а может быть очень много, тысячи. И в разных папках. Как быть.
Java придумала такое решение. В качестве базового архиватора выбран zip. Java его
просто переименовала в jar, что может означать JavaARchive. Файл с расширением jar
может прямо запускаться интерпретатором, но при условии, что в нем находится стандартная
папка с названием META-INF, и в этой папке, как минимум, находится файл с названием
MANIFEST.MF, а в этом файле, как минимум, такое содержание
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: First
|
И все. То есть jar-файл - это переименованный zip-файл с обязательным указанным файлом
в указанной папке. В этом zip-файле можно записать все классы, причем в том порядке папок
(пакетов), как было на диске. После этого файл становится полноценной программой, которую
можно запускать либо простым кликом, либо через batch файл. Запуск простым кликом неудобен
тем, что в этом случае нет окна терминала и диагностика никуда не выводится, если вы не
обрабатывали ошибки нужным образом. Но если вы специально позаботились о показе
диагностики в каком либо окне программы, то все нормально. В противном случае лучше
использовать batch файл, имеющий следующие строки
java -jar First.jar
pause
|
Этот файл можно назвать runj.bat. Вообще то говоря, для создания jar файлов в SDK есть
специальная программа jar.exe. Можно с ней работать. Но я лично действую по другому, а именно,
- включаю Windows Commander,
- открываю First.zip файл, например, просто копирую какой-нибудь имеющийся zip-файл
с другим именем и вычищаю все файлы кроме папки META-INF.
- в файле MAFIFEST.MF исправляю имя главного класса
- добавляю все нужные классы
- переименовываю файл командой ren First.zip First.jar
Последнюю команду можно записать в файл с именем renZJ.bat.
Если необходимо внести исправления, то просто используем обратную команду
ren First.jar First.zip в файле с именем renJZ.bat и дальше, как выше.
Непосредственно jar-файл Windows Commander не открывает, так как он запускает программу
на исполнение. Поэтому нужны такие хитрости. Если честно, писать более сложные манифесты
я пока не пробовал и не вижу в этом необходимости.
В следующей лекции показано, как исправить программу, чтобы ее можно было прокомпилировать
с компилятором версии 1.2.2. Это самый ранний компилятор из тех, что еще можно получить на сайте
Java.
[Назад]
[Вперед]