我正在尝试使用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。
答案 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的文件系统位置进行了更改。