|
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
|
||||||
Динамическая загрузка классов26.04.2011, 10:58. Показов 3512. Ответов 10
Метки нет (Все метки)
Кросплатформенный код, работающий на Java 5/6
В общем есть фрагмент кода (ссылка на веб-сайт), который сильно завязан на Java 6 (то есть под пятой не скомпилится). Я конечно могу определить версию JVM через System.getProperty(), но дело в том, что IDE всё равно подчёркивает часть строк красным. Мне бы хотелось в идеале этого избежать. Я решил изучить динамическую загрузку классов, но тут же столкнулся с непреодолимыми трудностями. Начало более-менее рабочее, а потом не находит он один класс - и хоть тресни) Может, кто-нибудь подскажет, в чём ошибка? Вылетает на том месте, где надо найти класс-перечисление java.awt.Desktop.Action Причём я сам до конца не понял, что это - сначала думал что вложенный класс - вроде не находит. Вроде бы должен являться полем - но вроде и не поле. Судя по иконке, которую выдаёт NetBeans, всё же класс! Но методом Class.forName() не обнаруживается. Что за ерунда? ![]()
0
|
||||||
| 26.04.2011, 10:58 | |
|
Ответы с готовыми решениями:
10
Динамическая загрузка классов Загрузка классов и инициализация
|
|
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
|
|
| 26.04.2011, 14:34 | |
|
Не могли бы вы объяснить что за монстра вы пишите?
0
|
|
|
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
|
|
| 26.04.2011, 15:44 [ТС] | |
|
Э... Сорри, не понял. Идея конечно хорошая, но каким образом среднестатистический юзер будет выбирать нужный класс? Во время установки? Так это придётся здорово заморочиться с инсталлятором, боюсь я так не сумею. Либо чтобы установка сама определяла установленную версию JRE, но это тоже не совсем тривиально. Я например с Wise Installation Studio работаю - Вы бы как это в ней сделали?
Всё равно так или иначе придётся динамическое определение и загрузку класса использовать в самой проге. Или Вы предлагаете свести это к минимуму, выбрав класс на самом старте из двух (это главный модуль)? Добавлено через 11 минут Ого, интересная штука...) Возможно, стоит заменить моё обращение к java.awt.Desktop на неё вообще. В этой версии... Это всё равно всего лишь очередная версия, для кроссплатформенного использования. Главное, на что она нацелена - разрулить существующие проблемы с платфомозависимыми разделителями путей, но я решил, что и механизм открытия URL нужно слегка переделать для пущей переноимости ![]() Добавлено через 11 минут Работает шикарно и там и сям. Большое спасибо)
0
|
|
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||
| 27.04.2011, 10:15 | ||
|
0
|
||
|
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
|
|
| 28.04.2011, 03:18 [ТС] | |
|
Ну, это сделать просто. Только не очень экономно и рационально. Держать два проекта в WIS, генерироваться будет 4 дистрибутива вместо двух (у меня в настройках выставлено генерировать ещё и инсталлятор на русском языке)... Это в лучшем случае, а в худшем (если дело не ограничится дублированием одного класса) ещё и на жёстком диске два разных каталога с исходниками, скомпилированными классами и прочим добром...
Оффтоп: а у меня и так текущий каталог, периодически загружаемый в Subversion, три релизных ветки (т.е. три версии, которые развиваются параллельно, поскольку до сих пор в первых всплывают всякие баги, порой довольно серьёзные), а в третьем релизе ещё две дополнительных редакции: одна сделана специально для Win98 (читайте для Java 5, с той тонкостью, что сайт открывается с помощью виндовой команды (которая не будет работать на других ОС) и некоторые пути прописаны в коде жёстко через бэкслэш, что фатально для UNIX систем. Ну а вторая редакция исправляет эти досадные упущения, при этом она и под Win98 работает тоже (а почему ей не работать )Вывод: у меня уже и так две редакции реализовано. Так что ещё одна совершенно ни к чему, тем более что обе работают на JRE 5 и 6, а вторая ещё и с другими ОС совместима. Так что вопрос вроде решён) Спасибо всем, кто откликнулся) Добавлено через 7 минут Кстати, вопрос в догонку: если я захочу (а наверно это так и будет) всё это дело русифицировать (ну или хотя бы последний релиз) - что Вы посоветуете: Internationalize в NetBeans и дальше по стандартной схеме (ключ запуска, либо переключать язык в настройках или как-нибудь так) - или всё-таки делать отдельную редакцию на русском? Ну например чтобы не усложнять код или облегчить вес дистрибутива/пространство, занимаемое прогой на жёстком диске?
0
|
|
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||||
| 28.04.2011, 07:37 | ||||
|
В исходниках postgresql-jdbc приблизительно так сделана сборка драйвера для разных версий jdbc. Добавлено через 2 минуты Добавлено через 8 минут
1
|
||||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 28.04.2011, 10:22 | ||
|
1
|
||
|
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
|
|||
| 28.04.2011, 23:04 [ТС] | |||
Насчёт build.xml - а чем это проще, чем два проекта в WIS? Я build.xml руками никогда не правлю. Да, некоторые предпочитают править их вручную, но это головная боль почище первой
0
|
|||
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|||
| 29.04.2011, 05:47 | |||
|
0
|
|||
|
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
|
|
| 29.04.2011, 21:34 [ТС] | |
|
Они вроде бы довольно большие... Мне их NetBeans создаёт))
0
|
|
| 29.04.2011, 21:34 | |
|
Помогаю со студенческими работами здесь
11
Динамическая загрузка java-класса Загрузка/Выгрузка классов в Java В каком порядке происходит загрузка классов Загрузка заставки и ленивый загрузчик классов в свете совета от Хорстманна Динамическая память для классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|