JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息
pakxpakx





發文: 24
積分: 0
於 2011-01-13 10:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
一個簡單的Hello wolrd , 確定在windows下面跑不會出現任何問題,但是卻在mac上面會出現下面的錯誤訊息

code:

1
2
3
4
5
6
7
8
9
10
11
12
public class MyAlert{
  public MyAlert(){
    JOptionPane panel = new JOptionPane();
    panel.showMessageDialog(new JFrame(), "Hellor world");
    
  }
  
  public static void main(String[] args){
    MyAlert alert = new MyAlert();
  }
}


訊息:

2011-01-13 10:24:35.945 java[3687:1303] *** __NSAutoreleaseNoPool(): Object 0x10060f3c0 of class NSCFString autoreleased with no pool in place - just leaking

使用的是mac 10.6.4 內建的jdk , 請問有人知道為何會發生這種情況呢?該怎麼排除?


reply to postreply to post
作者 Re:在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息 [Re:pakxpakx]
qrtt1





發文: 1749
積分: 32
於 2011-01-13 10:47 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
pakxpakx wrote:
一個簡單的Hello wolrd , 確定在windows下面跑不會出現任何問題,但是卻在mac上面會出現下面的錯誤訊息

code:

1
2
3
4
5
6
7
8
9
10
11
12
public class MyAlert{
  public MyAlert(){
    JOptionPane panel = new JOptionPane();
    panel.showMessageDialog(new JFrame(), "Hellor world");
    
  }
  
  public static void main(String[] args){
    MyAlert alert = new MyAlert();
  }
}


訊息:

2011-01-13 10:24:35.945 java[3687:1303] *** __NSAutoreleaseNoPool(): Object 0x10060f3c0 of class NSCFString autoreleased with no pool in place - just leaking

使用的是mac 10.6.4 內建的jdk , 請問有人知道為何會發生這種情況呢?該怎麼排除?


試著用別的 jdk 編譯,並執行看看。
這訊息看起來是 objective-c 的 warnings 。


reply to postreply to post
蝸牛角上爭何事?石火光中寄此身,隨富隨貧且歡樂,不開口笑是癡人。
my notes
作者 Re:在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息 [Re:qrtt1]
pakxpakx





發文: 24
積分: 0
於 2011-01-13 13:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
想請問,在objective-c裡面,出現這個訊息會有什麼影響嗎?

因為現在程式可以依照預期的跑出結果,只是會多了這個訊息,按照字面上似乎是記憶體回收的問題?


reply to postreply to post
作者 Re:在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息 [Re:pakxpakx]
RR

~Nintendo64~



發文: 686
積分: 3
於 2011-01-13 14:49 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
說些無關緊要的,非針對個人:

如果這是自己興趣玩玩沒關係
如果是工作,除非公司要求用Mac,不然員工自己這樣搞我會罵人......

實在看過不少人為了某些莫名妙的原因仇視X公司,並盡可能的不用X公司的產品。
然後自我感覺良好之後,又花更多時間在找X公司產品(或平台)上已經可以順利運作的功能的替代品......


reply to postreply to post

Focus TDCi Powershift,純正德國血統
作者 Re:在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息 [Re:pakxpakx]
qrtt1





發文: 1749
積分: 32
於 2011-01-13 18:16 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
嗯,先不討論怎麼排除好了。
您該先把 code 修正一下,把 UI 放到 UI Thread。
並且記得釋放 JFrame
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import javax.swing.*;
 
public class MyAlert{
    public MyAlert(){
        JFrame frame = new JFrame();
        JOptionPane panel = new JOptionPane();
        panel.showMessageDialog(frame, "Hellor world");
        frame.dispose();
    }
 
    public static void main(String[] args) throws Exception {
        SwingUtilities.invokeAndWait(new Thread(){
            public void run(){
                MyAlert alert = new MyAlert();
            }
        });
    }
}


reply to postreply to post
蝸牛角上爭何事?石火光中寄此身,隨富隨貧且歡樂,不開口笑是癡人。
my notes
作者 Re:在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息 [Re:RR]
qrtt1





發文: 1749
積分: 32
於 2011-01-13 18:18 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
RR wrote:
說些無關緊要的,非針對個人:

如果這是自己興趣玩玩沒關係
如果是工作,除非公司要求用Mac,不然員工自己這樣搞我會罵人......

實在看過不少人為了某些莫名妙的原因仇視X公司,並盡可能的不用X公司的產品。
然後自我感覺良好之後,又花更多時間在找X公司產品(或平台)上已經可以順利運作的功能的替代品......


弟算是這群體中的一個個人。
在家用 linux 在 office 配的是 mac mini。
非 X 公司的 user 並不代表會仇視 X 公司。
我只是選擇我需要的工具,
並以最順手的工具發揮我最大的生產力 Big Smile


reply to postreply to post
蝸牛角上爭何事?石火光中寄此身,隨富隨貧且歡樂,不開口笑是癡人。
my notes
作者 Re:在mac上跑Swing Hello World,出現__NSAutoreleaseNoPool的錯誤訊息 [Re:pakxpakx]
pakxpakx





發文: 24
積分: 0
於 2011-03-30 12:02 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
自己來回一下這件事情最後的解決方式好了。

最後當我更新了mac的jdk,問題就完全解決了,就像沒發生過一樣。

所以結論是,要記得更新。


reply to postreply to post
» JWorld@TW »  Java SE 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8