在Mac上使用SWT的问题

时间:2010-04-30 17:48:28

标签: java macos swt

我有一个使用SWT UI的java项目,我在任何Mac OS X计算机上部署都遇到了问题。当程序从Eclipse中运行或从jar文件运行时,程序本身在Windows上运行良好。在Mac上,该程序在Eclipse中也可以正常工作,但是当我尝试从jar文件运行它时,我收到以下错误:

2010-04-30 13:33:04.564 java[17825:41b] *** _NSAutoreleaseNoPool(): Object 0x10b9b0 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x944acf4f 0x943b9432 0x678fb79 0x35a19b1 0x359ba7f)
2010-04-30 13:33:04.566 java[17825:41b] *** _NSAutoreleaseNoPool(): Object 0x115ef0 of class NSCFNumber autoreleased with no pool in place - just leaking
Stack: (0x944acf4f 0x943b9432 0x678a0b0 0x35a19b1 0x359ba7f)
2010-04-30 13:33:04.567 java[17825:41b] *** _NSAutoreleaseNoPool(): Object 0x121000 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x944acf4f 0x943b9432 0x678fb79 0x35a19b1)
2010-04-30 13:33:04.581 java[17825:41b] *** _NSAutoreleaseNoPool(): Object 0x123720 of class NSPathStore2 autoreleased with no pool in place - just leaking
Stack: (0x944acf4f 0x943ba637 0x943c238f 0x943c1e8e 0x943c694b 0x678992e 0x35a19b1)
2010-04-30 13:33:04.582 java[17825:41b] *** _NSAutoreleaseNoPool(): Object 0x12d660 of class NSPathStore2 autoreleased with no pool in place - just leaking
Stack: (0x944acf4f 0x943ba637 0x943b9739 0x943c3eb2 0x943c6b22 0x678992e 0x35a19b1)
...
...
...

实际错误要大得多,并一直持续到程序崩溃为止。

我知道我正在使用正确的swt.jar文件,我尝试使用-XstartOnFirstThread VM参数运行该程序,但仍然没有运气。

有没有人有任何想法或建议我可以开始寻找解决方案?

感谢。

2 个答案:

答案 0 :(得分:4)

是捆绑了应用程序还是从命令行运行它?如果是捆绑的,则需要将值StartOnMainThread的值true放在Info.plist文件的Java字典中。如果未捆绑,则参数为java -XstartOnFirstThread。是的,它们是不同的,是的,不幸的是,这很烦人。

答案 1 :(得分:0)

SWT没有垃圾收集。我的猜测是你正在运行的代码导致操作系统内存泄漏,这是通过eclipse控制台报告的。

我怀疑错误消息不是Java错误消息,而是Obj-c错误消息。

你可以在这里阅读更多相关内容.. http://www.eclipse.org/articles/swt-design-2/swt-design-2.html

这是一个关于你实际看到的Obj-c错误的链接。 http://www.idevgames.com/forum/archive/index.php/t-7710.html

祝你好运!