问题:
我有一个产生“客户”的 JTabbedPane。每个客户端都是使用 URLClassLoader 从 jar 文件加载的 applet 的一个实例。所以基本上,每个选项卡都包含一个游戏小程序。
每次生成选项卡时,任务管理器都会显示正在使用的内存量增加。这很好。但是,当一个选项卡关闭时,小程序会停止并销毁,但根据任务管理器的内存使用情况仍然相同。
我尝试调用 System.gc ,但这并不能保证,而且根本没有任何作用!我尝试将所有对小程序的引用都归零,但这也无济于事。
如果可能的话,我的解决方案:
每个选项卡都有自己运行游戏的 JVM/进程。当一个 Tab 关闭时,小程序会停止,销毁,进程/JVM 使用的内存会因为进程/JVM 死了而归还给 OS?
我怎么能做这样的事情?是否可以让我的 JTabbedPane 中的每个选项卡运行 Jar 或创建一个新的 JVM 来运行它?
如果没有,我怎样才能清除所有关闭标签的内存?