|
Почему выводит так?
|
|||
---|---|---|---|
#18+
Есть прога: Вытаскивает из БД *.class файл. Все в массиве байтов. Все ок, но: Результат такой: Код: plaintext 1.
Ниже код ClassLoader-а: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 08:57 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
На мой взгляд программа работает именно так, как и должно работать. С чего это должно выводится на консоль что-то ещё кроме "Class Name: TestModule"? При создании экземпляра TestModule (через newInstance()) наварняка запускается конструктор по умолчанию этого класса, а он не определён, т.е. можно считать что пустой. Грубо говоря код из класса TestModule не запускается. Таким образом, что бы проверить работу надо код из метода main() класса TestModule перенести в конструктор класса. Или я что-то не правильно понимаю? Так никогда не пробовал, поэтому могу ошибаться... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 09:07 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
И можно пояснить, что имелось ввиду под "запуском файла"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 09:09 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
Я запускаю Loader а он нормально вытаскивает массив байтов(тот же TestModule.class только в ввиде байтов), выводит его имя. А вот запустить TestModule не хочет или не может, не выводится на консоль строка из TestModule "Hi, I'm Dynamic running file", почему? Если default конструктор не может, то как сделать чтобы он мог запустить файл, а не только читал массив байтов. Чтобы прога TestModule запускалась. Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 09:49 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
Чтобы "прога" TestModule "запускалась" - надо её запустить: Код: plaintext 1.
Здесь предполагается, что вызывающей программе известен класс TestModule. Возможна ситуация, когда он "не известен". В этом случае можно использовать механизм отражения: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
И класс, который использует вышеуказанный (пускай "запускает" если так больше нравиться)... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
После работы указанного кода на консоли у меня следующее: Код: plaintext 1. 2.
Этот код рабочий. В твоём случае можно организовать работу в таком же духе. Естесственно, я предполагаю, что загрузка класса из базы данных прошла успешно (я так предполагаю, что ты не говоришь о каких либо ошибках в вызове clazz.newInstance() На мой взгляд вот так вот... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 10:45 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
2SOMNAMBULA: Подготовь заранее пример, как загружать класс, если он имеет "внутренние классы", т.е. состоит из нескольких *.class файлов :) На словах объяснить опять, наверное, не получится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 12:30 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
Хорош прикаловатся автор На словах объяснить опять, наверное, не получится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 06:59 |
|
Почему выводит так?
|
|||
---|---|---|---|
#18+
Дийствительно, ребята!!! Прекращайте в конце концов! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 09:46 |
|
|
start [/forum/topic.php?fid=59&msg=32711389&tid=2153696]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 160ms |
0 / 0 |