ktanaka@ux019> appletviewer apptest.html java.awt.AWTException: cannot open XIM at sun.awt.motif.X11InputMethod.のようなものをそのまま,コピーアンドペーストしたものを送ってもらうと助 かる.(X11InputMethod.java:148) at sun.awt.motif.X11InputMethodDescriptor.createInputMethod(X11InputMethodDescriptor.java:78) at sun.awt.im.InputContext.getInputMethodInstance(InputContext.java:686) at sun.awt.im.InputContext.getInputMethod(InputContext.java:636) at sun.awt.im.InputContext.dispatchEvent(InputContext.java:188) at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:177) at java.awt.Component.dispatchEventImpl(Component.java:2527) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:333) at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
double d=Double.parseDouble("1.32"); -> double d=new Double("1.32").doubleValue();
12/11 16:00時点で11名しか提出していない.今日は講義時間を減らして自習 時間を増やすので,自習時間中になるべく質問するように.
プログラムを作っても動かない場合(大概すぐ動かない)は,プログラムのミ ス(バグ bug)を取り除くデバッグ(debug)作業が必要になる.デバッグの際に は,ありがちなバグを知っておくと良い.初心者のおかすミスをいくつかあげ る.
例1 for(i=0;i<100;i++){ for(j=0;j<100;i++){ ^^^ // 処理 } }
例2 for(i=0;i<100;i++){ for(i=0;i<10;i++){ ^^^^^^^^^^^^ // 処理 } }余計なセミコロンが入っている
例3 for(i=0;i<100;i++);{ // 処理 }
Exception in thread "main" java.lang.NullPointerException at test.main(test.java:5)
簡単なデバッグ法は,いろいろなところに変数を表示する System.out.println文(本来の目的からはSystem.err.printlnの方が適当)を入 れることである.printlnは null も破綻せずに表示してくれる.
より高度なデバッグ法としては,
dell.tanaka.ecc.u-tokyo.ac.jp% javac -g test.javaのようにデバッグオプション付きでコンパイルしておいて,デバッガ jdb 上 でプログラムを動かすこともできる.
dell.tanaka.ecc.u-tokyo.ac.jp% jdb test jdb の初期化中です... > run test を実行します > VM が起動しました: test 例外が発生しました: java.lang.NullPointerException (キャッチされていません)"スレッド=main", test.main(), line=5 bci=12 5 soko.equals(null); main[1] where [1] test.main (test.java:5) main[1] print test.soko test.soko = nullただし,アプレットの場合はこの方法が使えないので注意が必要となる.
この課題の締切りは12/18(火) 21:00 に延長する.