JNLPAppletLauncher не может найти имя класса subApplet с момента обновления Java 21
Начиная с версии 1.6.0_21-b07 JRE org.jdesktop.applet.util.JNLPAppletLauncher больше не может найти класс, содержащийся в параметре subapplet.classname. В https://applet-launcher.dev.java.net/source/browse/applet-launcher/trunk/src/org/jdesktop/applet/util/JNLPAppletLauncher.java?rev=41&view=log ваше имя появляется в редакции 41 для улучшенной загрузки класса субапплета. Если это действительно вы можете посмотреть?
С уважением,
Анри Мэнсон
1 ответ
Я не знаю конкретную причину, которую вы находите JNLPAppletLauncher
не найдет ваш апплет, но я могу дать некоторую предысторию:
JNLPAppletLauncher
был подписанный фляга, разработанная, чтобы быть использованной с недоверенным кодом. Смешивание доверенного и недоверенного кода на самом деле является уязвимостью. При исправлении смешанного кода 6u19 подобный код должен вызывать диалоговое окно с предупреждением безопасности.
Подобные JNLPAppletLauncher
банка должна быть помечена Trusted-Library: true
в манифесте. В коде могут потребоваться изменения (цитируемые в вопросе), чтобы использовать загрузчик классов апплета, а не родительский загрузчик классов доверенной библиотеки.
Во избежание появления диалогового окна предупреждения безопасности с использованием определенных jar-файлов до 6u19, некоторые распознаются (используя ту же реализацию, что и функция черного списка) и выполняются так, как если бы они выбрали опцию Trusted-Library
особенность. Если вы восстановите банку, она не будет распознана и потребует записи манифеста.
С уважением,
Том Хотин