Мы снабдили наш архив электронной подписью. У нас есть файлы :
player.jar и
namestore.
Для завершения образа законопослушного апплета нам необходимо создать ещё один файл -
player.policy
и добавить в него следующий текст :
keystore "namestore";
grant SignedBy "namekey" {
permission java.io.FilePermission "<<ALL FILES>>" , "read";
permission java.io.FilePermission "<<ALL FILES>>" , "write";
};
рис.7
Теперь все три файла можно собрать в папку с таким-же именем. Апплет можно запускать из
html-файла, с указанием пути.
Будет не лишним (это - на ваше усмотрение) кое-что добавить :
C:\Java\jre1.7.0_71\lib\security\java.policy --> добавить вышеприведённый текст (рис.7).
Если всё получилось - результат будет
таким. После прописки
jar-архива у меня, в Opera AC,
появился доступ к локальным файлам, т.е. в окне choos'а появился...выбор.
MS IE8.0 пока упирается, но я его дожму и обязательно поделюсь результатами.
P.S.: После архивации
jar-файл можно использовать отдельно, даже запускать можно автономно из КС (или ПКС) :
disk:\>java -jar player.jar // enter
и лучше - в корневом каталоге. Тем, кто работает
с ТС, можно установить программу для открытия
jar-файлов:
Executable Jar File ( C:\PROGRA~1\JAVA\JRE17~1.0_7\bin\javaw.exe " -jar"%1"%*)
рис.7.1
Быстрее всего вы не найдёте такой программы в диалоговом окне
"Открыть с помощью...". Не расстраивайтесь - добавте правую часть самостоятельно и нажмите "ОК", а
скобочки и левая часть добавятся автоматически. После
...exe и первой
" должны быть
пробелы. Левая часть может получится несколько иной.
***
Небольшое
bat-
отступление.
Все мероприятия по компиляции и архивации java-продукции - довольно
трудоёмки, требуют пристального внимания и отнимают много времени. Особенно - работа
с ПКС. Существует способ существенно облегчить и, на мой взгляд, упростить этот процесс. Для
этого в папке с файлом
player.java (исходным файлом), необходимо создать файл
player.bat
и поместить в него следующий код:
01 @Echo off
02 del *.class
03 del *.jar
04 del namestore
05 :: преобразуем *.java --> *.class:
06 call javac player.java
07 :: предварительный просмотр во frame:
08 call java player
09 :: создаём jar-file:
10 call jar -cvmf manifest.mf player.jar *.class
11 :: создаём ключи:
12 call keytool -genkey -alias namekey -keystore namestore
13 :: подписываем jar-file:
14 call jarsigner -keystore namestore player.jar namekey
15 pause
рис.7.2
Что новенького в этом коде? Давайте посмотрим:
01 - с этого оператора начинается bat-файл, он регулирует показ комментариев, атрибуты on/off;
05,07,09,11,13 - это строчки с комментариями (:: - один из операторов)
02,03,04 - эти строчки упростят отладку java-файла - удаление предыдущих вариантов файлов
06 - вызываем (call) процесс компиляции;
07 - предварительный просмотр результата во frame
10 - создаем архивный файл - это файл с манифестом, который мы ранее создали , но
этого можно не делать - архиватор сам создаст файл манифеста, для этого необходимо из
выражения
-cvmf (05 рис.7.2) удалить букву
m, а саму строчку представить в виде:
call jar
cvf player.jar player*.class
12 -- создаём ключи и сертификат;
14 -- подписываем jar-файл электронной подписью;
15 -- это - самый
необходимый оператор - он позволяет сохранить ПКС с результатами всех операций;
Небольшой
совет - до окончания доводки java-файла строчки 11-14 лучше закомментировать (::).
Несколько
слов о выражении
-cvmf: у этих символов много названий, заморачиватся
не стоит. Просто каждая поддерживаемая (читай - подключенная через системные переменные) ПКС
команда имеет кучку
[options] "опций". Чтобы познакомится с ними, необходимо зайти в ПКС
и набрать,например, команду disk:\>
jar -help и вы тут-же получите все
поддерживаемые
"опции" команды
jar и т.д.
***
Важно: использование представленных на рис.7.2
операторов и команд возможно только при условии установленной и подключенной Java.
Появление на ПКС сообщений типа "...не является...командой или..." - свидетельствует о несоблюдении
вышепреведённых требований.
Кина не будет...
После тог, как наш проигрыватель получил доступ к локальным файлам выяснилось, что
JMF (не смотря на все обещания) видео-форматы не поддерживает ! Если быть до конца честным - то один формат,
всё-таки поддерживается - MPG, но это, как-то, мало греет.
Ходят слухи, что к JMF можно кое-что добавить
и всё будет в шоколаде. Будем посмотреть - всё в наших руках. Пока суть да дело - создадим видео-плеер на
JavaScript.
А можно доработать проигрыватель : часики,
там, добавить, выбор экрана автоматизировать - скучать не будем ...
К слову - о часах. Нужны они на проигрывателе
или нет - вам решать, но выглядят они, примерно так :
занимаются ими пакеты
javax.swing.Timer;,
java.util.Calendar; и
java.util.Date;
01 Timer timer = new Timer(1000, new Clock());
02 Jlabel timelabel = new JLabel();
и судя по второй строчке помещаюся они в
label, а
точнее - не совсем они :
01 class Clock implements ActionListener
02 {
03 public void actionPerformed(ActionEvent ae)
04 {
05 DateFormat df = new SimpleDateFormat("HH:mm:ss");
06 Date time = Calendar.getInstance().getTime();
07 String reportTime = df.format(time);
08 timelabel.setText(reportTime);
09 }
10 }
запустить их можно вместе с ... плеером :
private void createPlayer()
{
.....
player.start();
timer.start();
}
catch...
}
Класс-метод
Clock(); добавляется в файл создаваемого проигрывателя.
продолжить......вернутся