java separate_java – 使用separate_jvm在各个JVM中启动applet并不总是有效

我有一个需要大量内存的applet,所以我们想用separate_jvm = true启动它,这样每个实例都可以获得自己的JVM(而不是共享的JVM),这样我们就不会在重复调用时耗尽内存.这适用于我们的开发盒,但在客户的计算机上失败.

这有安全原因吗?

这是签名&我们正在进行3d渲染的可信applet.

解决方法:

我假设您的客户端计算机上安装了Sun Java 6 update 10.如果没有,你可能会强制applet到run in a JVM whose version is atleast 6u10.我不确定将抛出的错误,或者如果找不到所需版本的JVM,则会显示错误消息.

除此之外,无法保证在APPLET标记中指定separate_jvm参数时将创建单独的JVM实例.

唯一的保证是applet将在与其他applet分离的自己的JVM中运行.如果JVM已经可用且未在该JVM中加载applet,则JVM可以在已初始化的JVM实例中加载applet.

对于Sun Java 6 u10发行说明,以下重点值得一读:

以下是the 6u10 release notes的一套粗略指南,用于共享和创建新的JVM实例:

>如果用于启动预先存在的JVM实例的命令行参数是所请求参数的超集,则将使用预先存在的JVM实例.

>如果为“默认”命令行参数集启动了JVM实例(即,在Java控制面板中指定的那些,没有指定java_arguments),那么此JVM实例将永远不会用于启动任何具有偶数的applet通过java_arguments指定的一个命令行参数.

> -Xmx是专门处理的:如果一个预先存在的JVM实例是通过例如-Xmx256m通过java_arguments启动的,而一个新的applet请求-Xmx128m,那么新的applet很可能会在预先存在的JVM实例中运行.换句话说,-Xmx规范与大于或等于的测试相匹配.

因此,最好的方法是在applet标记中提供java_arguments,这样在单独的JVM中启动applet的可能性非常高.

标签:java,applet

来源: https://codeday.me/bug/20190722/1498962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值