私は、学校(Java 1.6.0_23を実行中)のLinuxコンピュータで正常に動作するJavaアプレットを作成しました。しかし、私は最近、自分自身のMacを買って、Java 1.6.0_29をインストールしました。問題は、私は私の新しいMacでプログラムを実行するときに実行しているとき、私はいくつかのエラーを取得し、次のとおりです。java 1.6.0_29を使用するとエラーが発生する
あなたは、アプレットが2人の歯科医と椅子4脚と歯科医のオフィスをシミュレートすることになっているだろう場合Dentist1 is treating patient10
Dentist0 is treating patient11
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at sun.awt.RepaintArea.paint(RepaintArea.java:249)
at apple.awt.ComponentModel.handleEvent(ComponentModel.java:263)
at java.awt.Component.dispatchEventImpl(Component.java:4811)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
Dentist1 is treating patient12
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at sun.awt.RepaintArea.paint(RepaintArea.java:249)
at apple.awt.ComponentModel.handleEvent(ComponentModel.java:263)
at java.awt.Component.dispatchEventImpl(Component.java:4811)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Dentist0 is treating patient13
Dentist1 is treating patient14´
待合室。私は、待合室に入るのは4人だけで、忙しくなければ歯科医に行くことができ、患者を待ってから治療する2つの歯科医スレッドに入ることができるように秘書のスレッドクラスを持っています。
最初の10人の患者さんがうまく動作しているように見えますが、そのエラーが表示された後、エラーが発生しても実行され続けます。 私のコードを見ずにこの問題を手伝ってくれるかどうかは分かりませんが、新しいJavaバージョンでしかこれが起こらない理由についての助言に感謝します。 Java 1.6.0_23で検出されないコードに問題がある可能性はありますか?
コードではSwingコンポーネントを使用していますか?もっと早く助けを求めるには、[SSCCE](http://sscce.org/)を投稿してください。 –
コード内で未割り当てのオブジェクトを呼び出している/使用していると思われます。デフォルトでは、それらはヌル値を持ちます。あなたのコードを共有してください。 –