Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Апплеты > Сдохли аплеты при переходе на JRE 1.6 |
Автор: _Y_ 21.4.2009, 11:27 | ||
Лет 8-9 назад написал я серию аплетов. Работали в свое удовольствие без проблем. Все аплеты читают данные из тэга <param name=DATA value="......, размещенного внутри тега <applet... ну и демонстрируют что им положено. Вчера получил жалобу, что аплеты работают не на всех компьютерах. Обследование показало, что на компьютерах с Java машиной версии 1.5 аплеты работают, а с 1.6 - уже не работают. Вид браузера не важен. Исследование естественно проводилось не по всему Инету, а только на доступных мне 5-6 компах. Вот сообщение об ошибке:
Возникает подозрение, что в новой версии Java пытается парсить число из строки, включающей символ конца строки. Но это исколючительно догадка. Сталкивался ли кто-нибудь с подобной проблемой? Если да, то может есть способ простого решения? Например, решения в рамках HTML документа? Очень не хочется поднимать старые Java коды и переписывать аплеты. Дело в том, что с тех пор аплетов я не писал и совершенно забыл как это делается. Помогите, люди добрые, потерявшему последние знания ![]() |
Автор: AntonSaburov 21.4.2009, 14:12 |
Сделай на строку trim() - удалит все пробелы и переводы строки. |
Автор: math64 21.4.2009, 15:41 | ||
А тег param введён в одну строку, или так:
|
Автор: _Y_ 22.4.2009, 11:40 |
math64, именно "так" тег param и введён. Данных там немеряно и в одну строку его не вогнать. Вот, кстати, демо одного из этих аплетов http://www.sitey.narod.ru/dimo/dimo.htm |
Автор: math64 22.4.2009, 13:20 |
Если не хочешь менять апплет - вводи всё в одну строку, в html ограничения на длину строк нет. Или создавай тег с помощью javascript. |
Автор: _Y_ 26.4.2009, 12:40 |
Покорился судьбе: нашел старые исходники, нашел в аплете строку дающую ошибку, вставил trim(). Пытаюсь скомпилировать посредством javac, а она ругается: Class names are only accepted if anotation processing is explicitly reuested Подскажите, пожалуйста, какую анотацию и куда воткнуть? Чем ей мой старый-добрый код не нравится? math64, в одну строку будет очень неудобно. Аплеты универсальные. Заменой/корректировкой данных меняется смысл того, что аплет делает/представляет. Данные и так трудно менять, а если они будут в одну строку - полная смерть. |
Автор: math64 26.4.2009, 23:03 | ||
Добавлено через 10 минут и 47 секунд К тому же можно написать небольшую программу преобразующий html из старого вида в новый, но исправить апплет работы будет меньше. Насчёт аннотаций приведи строки кода на которую ругается компилятор. |
Автор: _Y_ 27.4.2009, 10:24 | ||
math64, спасибо, со скриптом-то все ясно, но менять все равно придется сами аплеты. Страниц испльзующих каждый аплет очень уж много – замучаюсь. Да и исследование показало, что проблема, скорее всего, решится исправлением одного-двух классов, которые используются для ввода данных во всех аплетах. Правда согласятся ли старые файлы сотрудничать с новыми-перекомпиллировамными еще вопрос. Но посмотрим. По аннотациям. Компилятор обижается не на строку, а на само имя класса. Выдает вот такой ответ:
|
Автор: math64 29.4.2009, 09:50 | ||
Попробуй вызвать компилятор так:
|
Автор: _Y_ 29.4.2009, 11:58 | ||
math64, спасибо, так тоже не работает, но натолкнуло на правильную мысль. Сработала такая строка:
Т.е. какие-то непонятные мне заморочки были с параметром -sourcepath и, в придачу, абсолютный путь не работает. Годится только относительный к директории, содержащей исполняемый файл javacа Но в любом случае проблема решена. Спасибо ![]() |