Mac OS X: java.lang.ClassNotFoundException: com.sun.java.browser.plugin2.DOM
Я пытаюсь использовать новые функции LiveConnect, представленные в Java 6 Update 10.
Код выглядит следующим образом (скопировано из учебника апплета):
Class<?> c = Class.forName("com.sun.java.browser.plugin2.DOM");
Method m = c.getMethod("getDocument", java.applet.Applet.class);
Document document = (Document) m.invoke(null, this);
Но все, что я получаю, это ClassNotFoundException для класса точки входа.
Это на Mac 10.6, с Firefox и Safari.
Java Plug-in 1.6.0_22
Using JRE version 1.6.0_22-b04-307-10M3261 Java HotSpot(TM) 64-Bit Server VM
Разве это не реализовано на Mac? Или мне нужно что-то настроить?
Все, что мне нужно сделать, это получить и установить значение элементов формы на странице, так что я буду в порядке со старым (до 6u10) API, если это будет работать лучше.
3 ответа
Нашел ответ в этой теме:
Java 6 на Mac включает в себя Plugin2, но он не используется по умолчанию. Вы можете включить его в настройках Java, установив флажок "Запускать апплеты в своем собственном процессе".
Я буду использовать старый API для лучшей совместимости.
Посмотрите на классы по:
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/plugin.jar
который на моей машине является псевдонимом для
/Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/plugin.jar
Класс com.sun.java.browser.plugin2.DOM там существует.
На вашем компьютере он может отличаться, так как я установил дополнительные пакеты JDK для разработчиков, в то время как на большинстве машин будет только JRE. Путь также может быть другим на вашем компьютере, если вы не установили все последние обновления Apple Java. Apple внесла изменения в расположение файловой системы JVM в своем последнем обновлении Java.
В соответствии с примечаниями к выпуску http://www.oracle.com/technetwork/java/javase/index-135519.html mac не поддерживается. Посмотрите "Поддерживаемые платформы и браузеры" по этой ссылке... Я вижу только Windows, Linux и Solaris. Не слишком мило с их стороны!