Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java3D-如何处置?_Java - Fatal编程技术网

Java3D-如何处置?

Java3D-如何处置?,java,Java,我有一个Java类,它创建了一个Java3D(1.5.2)Canvas3D,添加了一些东西,稍微旋转它,然后将它保存为一个图像,而不是在JFrame或类似的框架中实际显示Canvas3D。基于Java3D print_canvas3d示例,该部分工作正常 不幸的是,整个事情似乎难以清理,因为我看到两个症状: a) 保存图像后,应用程序应完成,但不会退出。调用System.exit(0)确实解决了这一问题,但由于该类稍后将在应用程序服务器中使用,因此这不是一个解决方案 b) 保存第一个图像后,尝试

我有一个Java类,它创建了一个Java3D(1.5.2)Canvas3D,添加了一些东西,稍微旋转它,然后将它保存为一个图像,而不是在JFrame或类似的框架中实际显示Canvas3D。基于Java3D print_canvas3d示例,该部分工作正常

不幸的是,整个事情似乎难以清理,因为我看到两个症状:

a) 保存图像后,应用程序应完成,但不会退出。调用System.exit(0)确实解决了这一问题,但由于该类稍后将在应用程序服务器中使用,因此这不是一个解决方案

b) 保存第一个图像后,尝试创建第二个图像(通过创建新的Canvas3D等)会阻止GraphicsConfiguration.getDevice()上的整个应用程序(如果通过将设备存储在静态成员中来解决此问题,请在类似的位置)

因此,Java3D代码的清理似乎缺少一些非常重要的东西。不幸的是,我似乎找不到

我尝试了给出的解决方案,尝试了SimpleUniverse.cleanUp、SimpleUniverse.getViewer.getView.attachViewPlatform(null)和其他东西,但似乎没有任何改变。我发现的唯一解决方法是将代码放在守护进程线程中,并将整个Canvas3D部分保存在一个静态变量中,但老实说,这看起来更像是一团乱,而不是一个解决方案。不幸的是,我没有时间用JOGL或类似的语言重写整个过程,我也不能简单地创建一个外部应用程序来编写映像并退出每次调用。。。所以我需要知道如何正确地做

我的问题很简单:如何在没有System.Exit的情况下正确清理Java3D应用程序

问候,


Flo

您似乎在“我尝试了[此处]给出的解决方案”中缺少一个链接。奇怪的是,使用链接按钮添加了它。。。无论如何,这就是这里提到的解决方案(使用反射调用finish()):这里已经提出了一个问题:而且,Java3D 1.5.2已经过时并且没有维护(多年了),不应该使用它。