Hi all, (i'm sorry about the length of this email) I have been confused by the setting of CLASSPATH for days.
I have tos1 and tos2 installed according to http://www.5secondfuse.com/tinyos/install.html Now i'm trying to use TOSBase to listen to the serial port, here's what happened: * * *1. when I in tos1. I 'cd' to $TOSROOT/tools/java, 'make' gives me all sorts of error message. * *2. the 'listen' feature is not working properly, it gives error message like this: * Exception in thread "main" java.lang.NoClassDefFoundError: net/tinyos/packet/BuildSource at net.tinyos.tools.Listen.main(Listen.java:47) Caused by: java.lang.ClassNotFoundException: net.tinyos.packet.BuildSource at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) ... 1 more *3. when I hope to use 'listen' in tos2, it gives me the same error message. * After doing a few research, I think maybe this is because of an error in CLASSPATH setting. can any one please tell me how to make it right? i have tinyos.sh in $TOSROOT of tinyos2.x like this ============================== #! /usr/bin/env bash # Here we setup the environment # variables needed by the tinyos # make system echo "Setting up for TinyOS 2.1.0" export TOSROOT= export TOSDIR= export MAKERULES= TOSROOT="/opt/tinyos-2.1.0" TOSDIR="$TOSROOT/tos" CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java MAKERULES="$TOSROOT/support/make/Makerules" export TOSROOT export TOSDIR export CLASSPATH export CLASSPATH="$CLASSPATH;." export MAKERULES echo $MAKERULES ============================ and .bash_tinyos in my home folder like this: ======================================== # Java export JDKROOT=/usr/lib/jvm/java-1.5.0-sun export JAVAXROOT=$JDKROOT if [ "$LD_LIBRARY_PATH" == "" ]; then # So Java can find libtoscomm.so and libgetenv.so export LD_LIBRARY_PATH=$JDKROOT/jre/lib/i386 fi # Set your default version of TinyOS here. if [ "$TINYOS_VER" == "" ]; then export TINYOS_VER=2 fi # Preserve any non Tinyos related class paths that have been set prior # to this file being sourced. We check the for an empty OLD_CLASSPATH # to ensure that OLD_CLASSPATH only gets set once. if [ "$OLD_CLASSPATH" == "" ]; then if [ "$CLASSPATH" == "" ]; then export OLD_CLASSPATH="empty" else export OLD_CLASSPATH=$CLASSPATH fi fi # Conditional environmental setup for 3 versions of TinyOS if [ "$TINYOS_VER" == "1" ]; then echo "Setting up for TinyOS 1.x" export TOSROOT=/opt/tinyos-1.x export TOSDIR=$TOSROOT/tos export MAKERULES=$TOSROOT/tools/make/Makerules unset CLASSPATH # Restore the old non tinyos classpath if its not empty if [ "$OLD_CLASSPATH" != "empty" ]; then export CLASSPATH=$OLD_CLASSPATH fi export CLASSPATH=$CLASSPATH\:`$TOSROOT/tools/java/javapath` # These aliases only apply to a 1.x environment alias tinyviz="$TOSROOT/tools/java/net/tinyos/sim/tinyviz" alias Deluge="java net.tinyos.tools.Deluge" else echo "Setting up for TinyOS 2.x" export TOSROOT=/opt/tinyos-2.1.0 export TOSDIR=$TOSROOT/tos unset CLASSPATH # Restore the old non tinyos classpath if its not empty if [ "$OLD_CLASSPATH" != "empty" ]; then export CLASSPATH=$OLD_CLASSPATH fi export CLASSPATH=$CLASSPATH\:$TOSROOT/support/sdk/java/tinyos.jar\:$TOSROOT/support/sdk/java/ export PYTHONPATH=:$TOSROOT/support/sdk/python/ export MAKERULES=$TOSROOT/support/make/Makerules unset TOSMAKE_PATH fi # Finally set the path for the new MSPGCCROOT export MSPGCCROOT=/opt/msp430 export PATH="$MSPGCCROOT/bin:$PATH" # Helpful aliases alias sf="java net.tinyos.sf.SerialForwarder" alias listen="java net.tinyos.tools.Listen" alias apps="cd $TOSROOT/apps" alias tos="cd $TOSROOT/tos" # Environment changing functions # Change this shell's environment to support Tinyos 2.x development function tos2 () { export TINYOS_VER=2 . ~/.bash_tinyos } # Change this shell's environment to support Tinyos 1.x development function tos1 () { export TINYOS_VER=1 . ~/.bash_tinyos } # Set the MOTECOM variable to the first mote in motelist function setMoteCom () { MOTE=`motelist -c| cut -d, -f2` if [ "$BOOMERANG" == "1" ]; then TYPE="tmote" else TYPE="telosb" fi export MOTECOM="ser...@$mote:$TYPE" } # Change ownership of the TinyOS directories to the TinyOS group. This # was originally written for the LiveCD xubuntos but it's handy to have # around. function tos-fix-permissions () { echo "sudo may prompt you for your password." sudo chown -R root:tinyos /opt/tinyos-* sudo chmod -R g+w /opt/tinyos-* sudo find /opt/tinyos-* -type d -exec chmod 2775 {} \; } ========================================= Thx Jin
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
