2012-02-17 7 views
0

Я смотрел livestream на http://www.humblebundle.com, и я видел, как они запускали приложение, и вносят изменения в код в Eclipse. Это просто изменения в следующий раз, когда они компилируются и запускаются, или он действительно меняет приложение, поскольку оно работает как-то?Компиляция в реальном времени?

+2

Вы должны включить больше контекста в свой вопрос, чтобы он имел смысл после окончания срока службы. – millimoose

ответ

3

Иногда. В режиме отладки eclipse может компилировать и изменять файлы классов в запущенной JVM, это называется Hot Code Replace.

Идея заключается в том, что вы можете начать сеанс отладки заданного времени выполнения верстака и изменить файл Java в вашем верстаке разработки и отладчик заменит код в принимающем VM пока она работает. Перезапуск не требуется, поэтому ссылка на «горячая».

Источник: Eclipse Wiki

Есть определенные обстоятельства, при которых это не будет работать, в этом случае Eclipse, вам будет предложено перезагрузить компьютер. Hot code replace failed

+0

«Определенные обстоятельства» - это те, когда вы редактируете нечто большее, чем просто тело метода, то есть добавление нового метода, изменение подписи, новый класс или конфигурации. Таким образом, в основном замена горячего кода очень ограничена тем, что он может сделать –

0

Возможность изменения кода приложения во время работы является функцией отладчика. В Eclipse и многих других популярных IDE он работает «из коробки». Функция имеет ряд ограничений: не может изменить сигнатуры методов, добавления/удаления членов класса и т.д.

1

Это называется hot code replace:

Идея заключается в том, что вы можете начать сеанс отладки на заданное время выполнения верстака и изменить файл Java в вашем рабочем столе разработки, а отладчик заменит код в принимающей VM, пока он работает. Перезапуск не требуется, поэтому ссылка на «горячая».

0

Если вы находитесь в режиме отладки, вы можете внести определенные изменения во время работы приложения. Независимо от того, действительно ли она действительна, зависит от того, изменяется ли это текущий загруженный код. Например, вы можете изменить функцию сортировки, пока программа не будет сортироваться, и она будет использовать новый код при следующем сортировке.

1

Невозможно сказать из потока. Java способна в той или иной степени - вы можете с некоторыми ограничениями заменить классы, загруженные JVM, используя отладчик. Также есть JRebel, который избавляется от многих ограничений.

Смежные вопросы