首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Java applet发行版本地库的Web浏览器

带有Java applet发行版本地库的Web浏览器
EN

Stack Overflow用户
提问于 2012-10-04 06:35:30
回答 1查看 803关注 0票数 1

我有一个带有多个Java3D小程序的网页,在Ubuntu上运行火狐或Chromium。我可以启动任何一个小程序,但是当我在浏览器中“返回”并尝试启动另一个Java3D小程序时,我得到

代码语言:javascript
复制
java.lang.UnsatisfiedLinkError:Native Library /lib/libj3dcore-ogl.so already loaded in another classloader

我可以关闭web浏览器并重新启动,然后我可以启动另一个小程序,但再次尝试在此之后启动另一个小程序会导致上述错误。

与web浏览器相反,我可以在Eclipse中运行任意数量的Java3D小程序。(令人惊叹的是--Java中重叠的OpenGL窗口!)

有没有一种方法可以在另一个Java3D小程序运行后,在浏览器中运行该小程序,而无需重新启动浏览器?

注意:我有一种感觉,离开一个页面并不意味着applet关闭了,但就浏览器而言,它仍然在运行。也许是一个Javascript,当页面离开时强制applet结束?

如果您想查看错误,请从下载zip文件

http://jat.sourceforge.net/node/24

解压并在deploy中打开index.html以在本地运行(互联网上的applet根本不运行-还没有在那里运行)。然后打开一个小程序,返回,并尝试运行另一个3D小程序。

EN

回答 1

Stack Overflow用户

发布于 2012-10-04 07:09:19

Ufff,这是Java安全性最严重的错误之一,问题很简单,当你打开页面时,你的小程序加载本地库(我使用Morena在浏览器中扫描),然后一切正常,但当你刷新时,你的小程序试图重新加载本地库,但浏览器将小程序保存在缓存中(这样它就不需要再次下载),然后本机已经加载,产生一个安全问题,为什么你不能加载本机资源两次(是的,你的小程序它只加载了一次,但每次加载小程序时都会调用它。但类加载器只在第一次创建时创建)。你没有办法..。我猜您已经签署了jars,因为在applet中运行本机代码需要它,但直到今天,我还无法跳过使用Native的applet的刷新问题,只能将它们添加到extensions文件夹中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12717842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档