Mac OS X:java.lang.ClassNotFoundException:com.sun.java.browser.plugin2.DOM

时间:2011-01-05 09:31:44

标签: java macos applet liveconnect

我正在尝试使用Java 6 Update 10中引入的新LiveConnect功能。

代码看起来像这样(从applet教程复制):

 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上实现的?或者我需要配置什么?

我需要做的就是在页面上获取并设置表单元素的值,所以 如果效果更好,我会使用较旧的(pre-6u10)API。

3 个答案:

答案 0 :(得分:2)

this thread中找到答案:

Mac上的Java 6确实包含Plugin2,但它不是默认值。您可以通过选中“在自己的进程中运行applet”在Java Preferences中启用它。

我将使用较旧的API以获得更好的兼容性。

答案 1 :(得分:0)

根据发行说明http://www.oracle.com/technetwork/java/javase/index-135519.html不支持mac。看看该链接上的“支持的平台和浏览器”......我只能看到Windows,Linux和Solaris。他们不太好!

答案 2 :(得分:0)

查看以下课程:

  

/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在上次Java更新中对JVM的文件系统位置进行了更改。