我在Ubuntu 16.04的TinyOs工作。 当我运行Blink程序时,会发生以下错误:
[INFO] script
2538 bytes in ROM
56 bytes in RAM
[INFO] size (toolchain):
text data bss dec hex filename
2596 2 56 2654 a5e build/telosb/main.exe
[INFO] generating symbol table
[INFO] generating listing
[INFO] creating ihex file
[INFO] writing TOS image
[INFO] writing TOS buildinfo
[INFO] running the wiring check
<JAVA_HOME>/lib/ext exists, extensions mechanism no longer supported; Use
-classpath instead.
.Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
../../support/make/Makerules:362: recipe for target 'wiring_check' failed
make: *** [wiring_check] Error 1
有没有人知道为什么会出现这种错误?
答案 0 :(得分:0)
这是由于TinyOS构建工具链试图使用最新(版本9)Java中不推荐使用的Java功能引起的。您需要安装较旧的Java JRE版本并将JAVA_HOME设置为旧版本:
java -version
来检查您当前的Java版本。如果它不是版本9或更高版本,请停止 - 这可能不是您需要的解决方案。uname -i
,您可以查看是否有32位或64位。选择以&#39; .tar.gz&#39;结尾的版本(.rpm适用于其他类型的Linux)。您需要使用Oracle帐户登录,或者如果您没有帐户,则需要注册。sudo cp
,例如sudo cp -r jre-8u73-linux-x64.tar.gz /usr/local/java
(您的文件名可能不同)sudo tar xvzf /usr/local/java/jre-8u73-linux-x64.tar.gz
chown -R jre-8u73-linux-x64
export JAVA_HOME=/usr/local/java/jre-8u73-linux-x64
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
sudo update-java-alternatives --set /path/to/java/version
java -version
现在是否为您提供旧版本。更好的方法是为TinyOS创建一个独立的开发VM环境,因为您并不想在主机上安装旧版本的Java。您可以使用Vagrant之类的内容执行此操作。如何做到这一点太长了,无法回答,请查看their documentation。