У меня каверзный вопрос.
Моя java-программа делает в цикле такие вещи:
петля:
прочитать внешний файл с скомпилированным классом java в массив byte[].
создать новый экземпляр моего собственного загрузчика классов.
установить байты из прочитанного файла в этот экземпляр загрузчика классов.
используя созданный загрузчик классов, создайте новый экземпляр объекта класса из внешнего файла.
вызвать любой метод созданного объекта.
И где проблема.
Когда я запускаю эту программу в режиме отладки, она ведет себя так, как я ожидаю, поэтому, если внешний файл изменен, загрузчик классов загружает новую версию класса и выполняет новую версию (если файл не изменился, он, конечно, также загружает старую версию).
Но когда я запускаю эту программу НЕ в режиме отладки, она всегда выполняет старую версию, несмотря на то, что прочитанный файл изменился.
Может быть, кто-то с более глубоким знанием проблем загрузки классов и поведения JVM может объяснить мне это поведение.
java
? - person Greg Kopff   schedule 14.05.2012