|
|
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
В чём отличия? Интересуют различия в функциональности, какие есть ограничения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 16:05:05 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
На сколько я помню, в .NET это было сразу и очень просто. До Java 6 все делолось через жопу (tools.jar) В Java 6 появился приемлемый, Compiler API. Но на сколько я понял о загрузке и хранении классов надо беспокоится самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 16:49:54 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
Навскидку: 1. Sun'овский старше. подозреваю, что фич в нем больше. 2. Если я правильно это понимаю Before you can run Microsoft intermediate language (MSIL), it must be converted by a .NET Framework just-in-time (JIT) compiler to native code, which is CPU-specific code that runs on the same computer architecture as the JIT compiler MS-ный компилит код перед вызовом. Это аццкий подход. Sun HotSpot компилит код в рантайме, по умолчанию в foreground'е, причем далеко не весь, а только тот который [как он считает] нуждается в perf. boost'е. 3. Sun'овский реализован в 2 видах: C1 (client) & C2 (server). О МСном ничего не нашел. 4. Если что то интересует в Sun'овском - можно скачать исходники. БОльшая часть кода доступна как open-source. Что там с МС - хз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 16:53:07 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
упс, похоже я не так понял вопрос :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 16:58:13 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
>>В Java 6 появился приемлемый, Compiler API. Но на сколько я понял о загрузке и хранении классов надо беспокоится самостоятельно. Не понял. В .Net можно код хранить в строке, а потом откомпилить. Затем полученную в памяти сборку использовать в приложении-хосте. А что там в Джаве с этим? Я так понимаю различия возникают в связи с различиями в метаинформации.В связи с этим возникает вопрос чего отсутвтует в метаинформации в Джаве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 10:21:56 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
Int23>>В Java 6 появился приемлемый, Compiler API. Но на сколько я понял о загрузке и хранении классов надо беспокоится самостоятельно. Не понял. В .Net можно код хранить в строке, а потом откомпилить. Затем полученную в памяти сборку использовать в приложении-хосте. А что там в Джаве с этим? Я так понимаю различия возникают в связи с различиями в метаинформации.В связи с этим возникает вопрос чего отсутвтует в метаинформации в Джаве? В реализации Java Compiler API предполагается что код хранится в файлах (собсно javac тоже ведь код из файлов компилит ;)). Но если посмотрите Interface JavaCompiler , там приведен пример подкласса SimpleJavaFileObject, реализующий получение кода для компиляции из строки - 10 строк кода. Аналогично можно сделать и для получения class-файла в памяти. Если очень хочется конечно ;) И есть особенные причины (ну скажем требования к производительности к примеру) для того чтобы использовать именно динамическую компиляцию, а не Scripting API . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 10:55:11 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
насколько я понял автора, ему хочется динамической отладки. Я тоже в какой-то рекламе Eclipse читал, что можно, отлаживая какое-нибудь веб-приложение, остановить его в дебаггере, поправить код в редакторе, скомпилировать, и продолжить исполнение. При этом Eclipse заменит в работающей программе класс на измененный в редакторе и продолжит выполнение уже нового кода. Только не помню, как эта фича называется и как ее заюзать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 21:34:48 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
это hotswap. делается через интерфейс дебагера. что нада афтару - хз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 21:44:45 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
"expp" <nospam@sql.ru> Автор: expp это hotswap. делается через интерфейс дебагера. что нада афтару - хз Тема Ответить Сообщение что, что... Код: plaintext 1. 2. 3. 4. 5. 6. 7. Нет такого в яве. Смотрите в сторону скриптовых языков, благо они позволяют обращаться напрямую к ява коду. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 23:14:18 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
Deady Нет такого в яве. Смотрите в сторону скриптовых языков, благо они позволяют обращаться напрямую к ява коду. Posted via ActualForum NNTP Server 1.4 Javassist еще и не такое позволяет. http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial.html. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 01:46:06 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
Так можно как нибудь в работающем приложении заменить без перезапуска приложения пару классов, не сервере каком-нить типа JBossа, а Swingовом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 17:59:31 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
ошщмзоязщмоыТак можно как нибудь в работающем приложении заменить без перезапуска приложения пару классов, не сервере каком-нить типа JBossа, а Swingовом? Классы, которые нужно будет менять, грузить через ClassLoader, иновкейтить через интерфейсы. По мере необходимости - менять на новые экземпляры классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2007, 08:07:07 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
Могу добавить, что в Java можно менять поведение даже базовых классов, таких, как String или Object. Можно их заменять на свои или менять их поведение без замены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2007, 08:11:27 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
VurnМогу добавить, что в Java можно менять поведение даже базовых классов, таких, как String или Object. Можно их заменять на свои или менять их поведение без замены. Хотелось бы уточнить, если можно - каким образом можно заменить поведение класса Object без замещения его своим классом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2007, 12:20:55 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
VurnМогу добавить, что в Java можно менять поведение даже базовых классов, таких, как String или Object. Можно их заменять на свои или менять их поведение без замены. что то ты по моему путаешь, подменить классы из java.* или javax.* по моему незя. Это же дыра в безопастности, если любой сможет в любое место подсунуть свою реализацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2007, 12:48:56 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
проверенно работает. я Javasisto'm в ArrayList методы добавлял. короче кому чё надо - можно практически всё. в грувях - ну полнейший беспредел на счёт этого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2007, 13:41:16 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. Демка по изменению строки testString "через попу". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2007, 20:51:36 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
по теме http://www.janino.net/ vas0 VurnМогу добавить, что в Java можно менять поведение даже базовых классов, таких, как String или Object. Можно их заменять на свои или менять их поведение без замены. что то ты по моему путаешь, подменить классы из java.* или javax.* по моему незя. Это же дыра в безопастности, если любой сможет в любое место подсунуть свою реализацию? Это не дыра. Менять код сможете если у вас есть соответствующие разрешения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2007, 10:31:21 |
|
||
|
Динамическая компиляция кода в Java и C#
|
|||
|---|---|---|---|
|
#18+
funikovyuriЭто не дыра. Менять код сможете если у вас есть соответствующие разрешения Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Судя по спецификации сервлетов 2.4 у контейнера есть полное моральное право "дать по башке" за подмену системных классов. Хотя "should" это не "must" и он может и не дать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 08:17:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34844410&tid=2144318]: |
0ms |
get settings: |
14ms |
get forum list: |
25ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
67ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
88ms |
get tp. blocked users: |
3ms |
| others: | 338ms |
| total: | 569ms |

| 0 / 0 |
