Что происходит, когда мой Java-апплет работает на более старых версиях Java, но использует новые классы?

Я создаю апплет для встраивания в HTML-страницу. Этот апплет использует класс GroupLayout, который находится в Java SE 6, но не в 5.

Что произойдет, если кто-то, чей компьютер работает под управлением Java 5 или более ранней версии, откроет эту HTML-страницу?
Будет ли апплет не работать должным образом?

3 ответа

Решение

Это бросит ClassDefNotFoundError. Чтобы избежать этого, не используйте новый API, не используйте сторонний API или макет "неподвижной" группы: возьмите класс, измените его пакет, включите его в свой проект и используйте его. Вы даже можете сделать это лучше. Создайте экземпляр динамически, используя Class.forName(). Если это удается, используйте стандартную реализацию, в противном случае используйте свой украденный класс. Вы можете сделать это, потому что обычно вы можете использовать стандартный API LayoutManager, не используя API конкретного загрузчика классов.

Да, это не удастся.

Вы можете использовать стороннюю библиотеку с похожими функциями: http://java.net/projects/swing-layout/

Да, апплет потерпит неудачу. Плагин Java не сможет загрузить ваш класс апплета, либо из-за плохой версии, либо из-за отсутствия класса.

Другие вопросы по тегам