运行Blink程序时出错

时间:2017-08-22 10:16:22

标签: ubuntu tinyos

我在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

有没有人知道为什么会出现这种错误?

1 个答案:

答案 0 :(得分:0)

这是由于TinyOS构建工具链试图使用最新(版本9)Java中不推荐使用的Java功能引起的。您需要安装较旧的Java JRE版本并将JAVA_HOME设置为旧版本:

  • 首先在终端中输入java -version来检查您当前的Java版本。如果它不是版本9或更高版本,请停止 - 这可能不是您需要的解决方案。
  • 转到Java download page for older versions
  • 在Java SE&#39; (SE代表&#39;标准版&#39;,这是我们需要的),选择旧版本。 TinyOS正式支持版本1.4和5,但我知道版本7工作正常,因为它是我使用的版本。版本8也可以正常工作。
  • 然后在Java SE Runtime Environment&#39;下,选择Linux x86(如果您使用的是Ubuntu 32位)或Linux x64(用于64位)。通过在终端中键入uname -i,您可以查看是否有32位或64位。选择以&#39; .tar.gz&#39;结尾的版本(.rpm适用于其他类型的Linux)。您需要使用Oracle帐户登录,或者如果您没有帐户,则需要注册。
  • 下载.tar.gz文件。您可以决定要在系统中保留此版本Java的位置。您可以将它保存在主目录中的某个位置,但按照惯例,我们通常将这些类型的程序保存在&#39; / usr / local / java&#39;中。如果您想将其保留在那里,则必须使用sudo cp,例如sudo cp -r jre-8u73-linux-x64.tar.gz /usr/local/java您的文件名可能不同
  • 现在您需要从压缩的.tar.gz文件中提取文件。例如,sudo tar xvzf /usr/local/java/jre-8u73-linux-x64.tar.gz
  • (可选)您现在可以删除。
  • 您需要确保您有权执行下载的java。例如,您可以使用chown -R jre-8u73-linux-x64
  • 最后,您需要将JAVA_HOME环境变量设置为指向刚刚创建的java文件夹的位置。有many ways to do this。我建议在/etc/profile.d目录(称为java-env.sh)中创建一个文件,其中包含以下内容: 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
  • 告诉Ubuntu使用旧版本
  • 打开一个新的终端窗口,检查java -version现在是否为您提供旧版本。

更好的方法是为TinyOS创建一个独立的开发VM环境,因为您并不想在主机上安装旧版本的Java。您可以使用Vagrant之类的内容执行此操作。如何做到这一点太长了,无法回答,请查看their documentation