Java 为什么我的小程序必须使用单独的jvm?

Java 为什么我的小程序必须使用单独的jvm?,java,applet,jvm,Java,Applet,Jvm,我制作了一个小程序,通过我们的电话系统switchvox自动拨打联系人号码,并将通话信息记录到我们的CRM salesforce中。我遇到的问题是,除非我使用单独的JVM参数,否则事情会变得一团糟 例如,假设他们为多个联系人打开了多个选项卡,因此在同一jvm中运行多个小程序。如果没有单独的jvm参数,有时它会从另一个选项卡拨一个号码。我通过参数标签传递数字,我甚至尝试从applet调用JS方法传递数字,但仍然没有成功 由于我们的crm是基于云的,人们喜欢打开多个选项卡,但不喜欢在下面看到多个ja

我制作了一个小程序,通过我们的电话系统switchvox自动拨打联系人号码,并将通话信息记录到我们的CRM salesforce中。我遇到的问题是,除非我使用单独的JVM参数,否则事情会变得一团糟

例如,假设他们为多个联系人打开了多个选项卡,因此在同一jvm中运行多个小程序。如果没有单独的jvm参数,有时它会从另一个选项卡拨一个号码。我通过参数标签传递数字,我甚至尝试从applet调用JS方法传递数字,但仍然没有成功


由于我们的crm是基于云的,人们喜欢打开多个选项卡,但不喜欢在下面看到多个java图标,请参考图。以前有人遇到过这个问题,并且/或者有一个没有单独JVM的解决方法

不看小程序的代码很难说

但是我想冒昧地猜测一下,您的代码正在将其一些可变状态置于静态中,并且偶尔小程序的一个实例会通过静态干扰另一个实例


如果您的小程序中有任何共享的可变静态,理想情况下您应该去掉它们。或者,如果该状态确实需要由小程序的多个实例共享,请确保所有访问都正确同步。

如果不查看小程序的代码,很难说

但是我想冒昧地猜测一下,您的代码正在将其一些可变状态置于静态中,并且偶尔小程序的一个实例会通过静态干扰另一个实例


如果您的小程序中有任何共享的可变静态,理想情况下您应该去掉它们。或者,如果该状态确实需要由小程序的多个实例共享,请确保所有访问都已正确同步。

静态数据在小程序之间共享,因为它们都在同一个VM中运行。您可以尝试,但仍然共享虚拟机。但是,我不确定这个选项是否只适用于小程序启动,因为我一直没有成功地使用它


最好的办法是摆脱静态或使用单独的jvm。

静态在小程序之间共享,因为它们都在同一个VM中运行。您可以尝试,但仍然共享虚拟机。但是,我不确定这个选项是否只适用于小程序启动,因为我一直没有成功地使用它

最好的办法是摆脱静态或使用单独的jvm