![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
Хочу автоматически генерить Java код и компилярить его чтоб потом загрузить и использовать.
По моему где то я такое видел, но не помню где и как. Может SWT умеет ? P.S. exec("javac") не предлагать. --------------------
Много чего интересного... |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
com.sun.tools.javac.Main.compile
-------------------- |
|||
|
||||
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
быстро
спасибо --------------------
Много чего интересного... |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
не за що
Добавлено @ 19:22 Можно здесь еще посмотреть: http://www.javaworld.com/javatips/jw-javatip131.html -------------------- |
|||
|
||||
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
компилирую класс с помощью Main.compile, создается новый class-файл. Загружаю его через Class.forName и создаю новую инстанцию. Все работает. Проблема: если изменить исходный код, и скампилировать его заного, то, сюдя по всему, ClassLoader не хочет его загружать повторно, и новая инстанция создается по старому коду. Можно ли както перегрузить класс в текущей виртуальной машине, или придется какждый раз придумывать новое имя классу ? --------------------
Много чего интересного... |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Придется делать либо так как ты делаешь, либо создавать новый ClassLoader.
-------------------- |
|||
|
||||
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
А если создавать свой ClassLoader, то каким макаром мне перегружать классы ?
--------------------
Много чего интересного... |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Делать все так же как и ранее, просто он "не будет знать" об уже созданных классах.
-------------------- |
|||
|
||||
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
Как то не получается, все закрыто в классе ClassLoader. Может у тебя конкретное решение есть ?
--------------------
Много чего интересного... |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Ну что-то типа
-------------------- |
|||
|
||||
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
именно так и не будет работать. Он ставит один раз линк имя-bytecode. Т.е. если один раз загрузил класс, то в следующий раз (даже если class-файл изменился) он его грузить не будет, а возьмет старый.
попробую написать маленький пример чтоб все понятно было. --------------------
Много чего интересного... |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
но ведь нужно создавать новый класс лоадер -------------------- |
|||
|
||||
| anonymouse |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
вот.. может я чего не догоняю ? Добавлено @ 21:22 пардон ошибся вот такой код:
--------------------
Много чего интересного... |
||||
|
|||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
завтра буду на работе - посмотрю.
-------------------- |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Вот так работает:
Но по-моему, так медленнее -------------------- |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |