2010-04-21

[memo] host-run 使用時のエラー

SunSPOTの開発ですが,Sunの製品ってこともあり,Net Beansが推奨されていますが,デファクトスタンダードはEclipseかなぁと思い,開発はWindows + Eclipseで進めていた自分です.

今まで,Sun SPOTのエンドノード側のプログラムを書いていたときは,Eclipseでコードを書いて,コマンドプロンプトでant deploy run コマンドを実行して,問題なかったけど,ホストアプリケーションの方でささった.

Sun SPOTのプログラムと同様に,Eclipseでコードを書いて,コマンドプロンプトでant host-compileを実行後,ant host-runを実行すると

-do-host-run:
     [java] java.lang.NoClassDefFoundError: squawk/application/Startup
     [java] Caused by: java.lang.ClassNotFoundException: squawk.application.Startup
     [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
     [java]     at java.security.AccessController.doPrivileged(Native Method)
     [java]     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
     [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
     [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
     [java]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
     [java] Could not find the main class: squawk.application.Startup.  Program will exit.
     [java] Exception in thread "main"

BUILD FAILED
C:\SunSPOT\sdk\ant\host-run.xml:35: Java returned: 1

のようなエラーが・・・コチラのサイトに書かれている症状と全く同じ.

Eclipseだと生成されない「build.properties」を作成したら問題解決.build.xmlと同じフォルダに以下のように記述したbuild.propertiesを作成し,ant host-compile,ant host-runすれば,無事にホストアプリケーションが動いてくれます.

main.class=org.sunspotworld.SunSpotHostApplication

↑は,SunSPOTのsdkディレクトリの下にあるDemos/CodeSamples/SunSpotHostApplicationTemplateの場合.

main.class=パッケージ名.main関数を持つクラス名

のように,すればOK.

Sun SPOT, antに関しては早稲田大学のコチラのサイトが役に立ちました.

0 件のコメント: