在Mac上使用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参数运行该程序,但仍然没有任何运气。
有没有人有任何想法或建议我可以开始寻找解决方案?
谢谢。
是捆绑应用程序还是从命令行运行它? 如果是捆绑的,则需要在Info.plist文件的Java字典中放置值为StartOnMainThread
的值为true
。 如果没有捆绑,则参数为java -XstartOnFirstThread
。 是的,他们是不同的,是的,不幸的是,令人讨厌。
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
祝好运!