在Tiny OS中使用java从串口读取数据
我正在学习Tiny操作系统教程第4课“Mote PC串行通信和串行转发器”,我被它所说的内容困住了 安装TestSerial后,需要运行相应的Java应用程序,该应用程序通过串行端口与之通信。这是在构建TinyOS应用程序时生成的。从应用程序目录中键入在Tiny OS中使用java从串口读取数据,java,classpath,tinyos,Java,Classpath,Tinyos,我正在学习Tiny操作系统教程第4课“Mote PC串行通信和串行转发器”,我被它所说的内容困住了 安装TestSerial后,需要运行相应的Java应用程序,该应用程序通过串行端口与之通信。这是在构建TinyOS应用程序时生成的。从应用程序目录中键入 $ java TestSerial 但是,当我键入此命令时,我会遇到以下错误 Error: Could not find or load main class TestSerial 我尝试了几种方法来解决这个问题,但都没有效果 我尝试过的解决
$ java TestSerial
但是,当我键入此命令时,我会遇到以下错误
Error: Could not find or load main class TestSerial
我尝试了几种方法来解决这个问题,但都没有效果
我尝试过的解决方案:
java-cp.TestSerial运行命令
然而,我一直有同样的错误
有没有其他更好的方法来修复它
我正在将虚拟机与Fedora OS一起使用
我试图在mib520平台上运行这个程序,我使用iris微尘
我的java版本
openjdk版本“1.8.0_31”
OpenJDK运行时环境(构建1.8.0_31-b13)
OpenJDK服务器虚拟机(build 25.31-b07,混合模式)必须运行make命令时,必须跳过该步骤
导航到apps/tests/TestSerial文件夹并键入make[platform]
(例如make telosb、make iris e.t.c),将运行的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
文件夹
通过键入makeiris
连接您的微尘,然后键入motelist
。此命令将列出所有连接的微尘。您的微尘名称应列在“设备”部分下。请注意这一点,以便在接下来的两个步骤中使用
通过键入命令make iris Install.1 bsl,[DEVICE NAME]
安装应用程序。这将生成程序并将其上载到设备
通过运行java TestSerial-comm serial@[设备名称]:iris来运行TestSerial应用程序
如果你使用另一个平台,比如telosb,那么就用telosb替换上面命令中所有出现的iris。TestSerial.class
是否确实存在于你的工作目录中?@Michael Jaros没有,但教程没有提到它,我想假设默认情况下它应该存在。我有TestSeri我也试着用同样的命令运行它。对不起,我对java同样熟悉,所以不确定编译过程是什么TestSerial.java
需要在执行之前编译:只需调用javac TestSerial.java
。这将创建编译后的类文件。我猜这是从教程中得到的在我看来,前面的一个步骤应该已经完成了,但没有按预期工作。bash:javac:command-not-found…。当我进入java目录时,它是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-5.b13.fc21.i386/jre/bin/我甚至没有发现javac文件java有两种发行版,jre(仅用于执行)和JDK(促进发展)。大多数人只需要JRE,但要编译.java
文件,您需要JDK。嗨@KillaKem,make iris命令不起作用,因为我没有编译TestSerialMsg.java文件并在类路径中添加当前目录,所以我想这些步骤应该是第一步。否则,一切现在都可以工作了,感谢您的支持暗示