Глобальная ссылка JNI - это ссылка из "собственного" кода на объект Java, управляемый сборщиком мусора Java. Его целью является предотвращение сбора объекта, который все еще используется собственным кодом, но, похоже, не содержит живых ссылок в коде Java.
JFrame - это java.awt.Window
, и он связан с "собственным" объектом Window. Когда вы закончите работу с конкретным экземпляром JFrame, вы должны вызвать его метод dispose()
для очистки.
Я не уверен, создает ли какой-либо нативный код глобальную ссылку на JFrame, но это кажется вероятным. Если это произойдет, это предотвратит сборку мусора JFrame. Если вы создаете много Windows (или подклассов) и видите, что они никогда не собираются, убедитесь, что они удалены.