什么可能导致插件缓存jar中的applet打开单独的Java控制台?我有一个DDE服务器/客户端的3个小程序,第一个加载所需的文件,第二个启动服务器,第三个启动客户端向桌面应用程序发送命令。第一个和第三个小程序打印到控制台,第二个小程序打开它自己的控制台。
这会导致UnsatisfiedLinkErrors形式出现问题,因为并发使用本机dde客户端库。
我知道这不是很多,但我很难过。
更新 当我在小程序所在的JSP页面中使用JS警报时,问题已得到纠正,请参见下文。
1)index.jsp包含InstallDDEFiles
applet的applet标签,缓存插件。当InstallDDEFiles
applet验证所需的DDE库放在JRE中时,它会设置一个实例变量installed = true
。
2)在$(document).ready中,我为InstallDDEFiles
调用了installed
getter,如果为true,我会在页面上添加一个iframe,其中包含{{applet标记1}}与DDEServer
。 document.getElementByID().src = ''
小程序与DDEServer
位于同一个jar中。
以下结果会打开2个单独的java控制台,当我尝试加载DDE的DLL时,这会在进程中进一步导致InstallDDEFiles
。
现在,如果我在调用后添加UnsatisfiedLinkErrors
结果的alert(),则applet会在同一个控制台中打印,而我无法获得InstallDDEFiles.isInstalled()
我通常会得到。如果我只是记录UnsatisfiedLinkErrors
调用的结果,我会看到isInstalled()
的正确值,但我仍然可以获得2个控制台,但仍然会收到链接错误。