我正在经历Tiny OS教程第4课“ Mote-PC串行通信和SerialForwarder”,我被困在上面说的那条线上 “一旦安装了TestSerial,就需要运行相应的Java应用程序,该应用程序通过串行端口与之通信。这是在构建TinyOS应用程序时构建的。在应用程序目录中,键入
$ java TestSerial
但是,当我键入此命令时,会遇到以下错误
Error: Could not find or load main class TestSerial
我尝试了几种方法来解决此问题,但没有帮助。
我尝试过的解决方案:
1)将CLASSPATH设置为我当前所在的目录,即
export CLASSPATH =。:/ home / wsn / tinyos-main / apps / tests / TestSerial
2)将CLASSPATH设置为tinyos.jar所在的目录
export CLASSPATH =。:/ home / wsn / tinyos-main / support / sdk / java / tinyos.jar
3)使用java -cp . TestSerial
但是我仍然遇到相同的错误
还有其他更好的方法来解决它吗?
我在Fedora OS上使用虚拟机
我正在尝试在mib520平台上运行该程序,并且使用了虹膜微粒
我的Java版本
openjdk版本“ 1.8.0_31”
OpenJDK运行时环境(内部版本1.8.0_31-b13)
OpenJDK Server VM(内部版本25.31-b07,混合模式)
感谢您的帮助
答案 0 :(得分:1)
在必须运行make命令时,您必须跳过该步骤。
导航到apps / tests / TestSerial文件夹并输入make [platform]
(例如make telosb,make iris等),将要运行的makefile将是TestSerial文件夹中的makefile,其定义如下:
COMPONENT=TestSerialAppC
TOSMAKE_PRE_EXE_DEPS += TestSerial.class
TOSMAKE_CLEAN_EXTRA = *.class TestSerialMsg.java
TestSerial.class: $(wildcard *.java) TestSerialMsg.java
javac -target 1.4 -source 1.4 *.java
TestSerialMsg.java:
nescc-mig java $(CFLAGS) -java-classname=TestSerialMsg TestSerial.h test_serial_msg -o $@
TINYOS_ROOT_DIR?=../../..
include $(TINYOS_ROOT_DIR)/Makefile.include
因此,makefile会编译TestSerial.java。之后,您可以继续安装应用程序,然后运行TestSerial应用程序。
例如,逐步使用虹膜微粒
导航到apps/tests/TestSerial
文件夹
通过键入make iris
连接您的节点,然后键入motelist
。此命令将列出所有连接的节点。微粒名称应在“设备”部分下列出。请注意,以供接下来的两个步骤使用。
通过键入命令make iris install.1 bsl, [DEVICE NAME]
安装应用程序。这将制作程序并将其上传到设备。
通过运行java TestSerial -comm serial@[DEVICE NAME]:iris
如果您使用诸如telosb之类的其他平台,则只需用telosb替换上面命令中出现的所有虹膜。