Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сдохли аплеты при переходе на JRE 1.6, ошибка чтения данных 
V
    Опции темы
_Y_
Дата 21.4.2009, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Лет 8-9 назад написал я серию аплетов. Работали в свое удовольствие без проблем. Все аплеты читают данные из тэга <param name=DATA value="......, размещенного внутри тега <applet... ну и демонстрируют что им положено.

Вчера получил жалобу, что аплеты работают не на всех компьютерах. Обследование показало, что на компьютерах с Java машиной версии 1.5 аплеты работают, а с 1.6 - уже не работают. Вид браузера не важен. Исследование естественно проводилось не по всему Инету, а только на доступных мне 5-6 компах.

Вот сообщение об ошибке:
Код

java.lang.NumberFormatException: For input string: "4
"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at DataString.read_int(DataString.java:69)
    at SE1.ReadData(SE1.java)
    at SE1.init(SE1.java)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NumberFormatException: For input string: "4
"

Возникает подозрение, что в новой версии Java пытается парсить число из строки, включающей символ конца строки. Но это исколючительно догадка.

Сталкивался ли кто-нибудь с подобной проблемой? Если да, то может есть способ простого решения? Например, решения в рамках HTML документа?

 Очень не хочется поднимать старые Java коды и переписывать аплеты. Дело в том, что с тех пор аплетов я не писал и совершенно забыл как это делается. 

Помогите, люди добрые, потерявшему последние знания smile  


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
AntonSaburov
Дата 21.4.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Сделай на строку trim() - удалит все пробелы и переводы строки.
PM MAIL WWW ICQ   Вверх
math64
Дата 21.4.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



А тег param введён в одну строку, или так:
Код

<param name=DATA value="4
">

PM   Вверх
_Y_
Дата 22.4.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



math64, именно "так" тег param и введён. Данных там немеряно и в одну строку его не вогнать.

Вот, кстати, демо одного из этих аплетов http://www.sitey.narod.ru/dimo/dimo.htm


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
math64
Дата 22.4.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Если не хочешь менять апплет - вводи всё в одну строку, в html ограничения на длину строк нет. Или создавай тег с помощью javascript.
PM   Вверх
_Y_
Дата 26.4.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Покорился судьбе: нашел старые исходники, нашел в аплете строку дающую ошибку, вставил trim(). Пытаюсь скомпилировать посредством javac, а она ругается: 
Class names are only accepted if anotation processing is explicitly reuested
Подскажите, пожалуйста, какую анотацию и куда воткнуть? Чем ей мой старый-добрый код не нравится?

math64, в одну строку будет очень неудобно. Аплеты универсальные. Заменой/корректировкой данных меняется смысл того, что аплет делает/представляет. Данные и так трудно менять, а если они будут в одну строку - полная смерть.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
math64
Дата 26.4.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Код

<script language="javascript">
document.writeln("<applet code='MyClass.class' archive='myjar.jar' width='100' height='100'>");
document.writeln("<param name=DATA value='" +
 "this is " +
 "long data" +
"'>");
document.writeln("</applet>");
</script>


Добавлено через 10 минут и 47 секунд
К тому же можно написать небольшую программу преобразующий html из старого вида в новый,
но исправить апплет работы будет меньше.
Насчёт аннотаций приведи строки кода на которую ругается компилятор.
PM   Вверх
_Y_
Дата 27.4.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



math64, спасибо, со скриптом-то все ясно, но менять все равно придется сами аплеты. Страниц испльзующих каждый аплет очень уж много – замучаюсь. Да и исследование показало, что проблема, скорее всего, решится исправлением одного-двух классов, которые используются для ввода данных во всех аплетах. Правда согласятся ли старые файлы сотрудничать с новыми-перекомпиллировамными еще вопрос. Но посмотрим.

По аннотациям. Компилятор обижается не на строку, а на само имя класса. Выдает вот такой ответ:
Код

>javac -sourcepath  C:/путь/ DataString
error: Class names, 'DataString', are only accepted if annotation processing is explicitly requested
1 error

>
Я пробовал переименовать класс (и внутри кода и сам файл) – бесполезно. Что-то ему не нравится, а что я не знаю.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
math64
Дата 29.4.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Попробуй вызвать компилятор так:
Код

> javac -sourcepath  "C:/путь/" DataString.java

PM   Вверх
_Y_
Дата 29.4.2009, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



math64, спасибо, так тоже не работает, но натолкнуло на правильную мысль. Сработала такая строка:
Код

javac ../../../путь от С/DataString.java

Т.е. какие-то непонятные мне заморочки были с параметром -sourcepath и, в придачу, абсолютный путь не работает. Годится только относительный к директории, содержащей  исполняемый файл javacа

Но в любом случае проблема решена. Спасибо  smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0805 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.