Ubuntu 运行闪烁程序时出错
我在Ubuntu 16.04的TinyOs中工作。 运行闪烁程序时,出现以下错误:Ubuntu 运行闪烁程序时出错,ubuntu,tinyos,Ubuntu,Tinyos,我在Ubuntu 16.04的TinyOs中工作。 运行闪烁程序时,出现以下错误: [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]
[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
[INFO]脚本
ROM中的2538字节
RAM中的56字节
[信息]尺寸(工具链):
文本数据bss dec十六进制文件名
2596 2 56 2654 a5e build/telosb/main.exe
[信息]生成符号表
[信息]正在生成列表
[信息]正在创建ihex文件
[信息]写入TOS图像
[信息]写入TOS buildinfo
[信息]正在运行接线检查
/lib/ext存在,不再支持扩展机制;使用
-而不是类路径。
。错误:无法创建Java虚拟机。
错误:发生致命异常。程序将退出。
../../support/make/Makerules:362:目标“接线检查”的方法失败
make:**[接线检查]错误1
有人知道为什么会发生此错误吗?这是由于TinyOS build tool chain试图使用最新(版本9)Java中不推荐的Java功能造成的。您需要安装较旧的Java JRE版本,并将Java_主页设置为此较旧版本:
- 首先在终端中键入
检查当前的Java版本。如果不是版本9或更高版本,请停止-这可能不是您需要的解决方案Java-version
- 去医院
- 在“JavaSE”(SE代表“标准版”,这是我们需要的),选择一个旧版本。TinyOS正式支持版本1.4和5,但我知道版本7可以正常工作,因为这是我正在使用的版本。版本8也可以正常工作
- 然后在“JavaSE运行时环境”下,选择Linuxx86(如果您使用的是32位Ubuntu)或Linuxx64(对于64位)。您可以通过在终端中键入
来确定是32位还是64位。选择以“.tar.gz”结尾的版本(.rpm用于其他类型的Linux)。您将需要使用Oracle帐户登录,如果没有,则需要注册uname-i
- 下载.tar.gz文件。您可以决定将此版本的Java保存在系统的何处。您可以将其保存在主目录中的某个位置,但按照惯例,我们通常将此类程序保存在“/usr/local/java”中。如果您想保留它,您必须使用
,例如sudo cp
(您的文件名可能不同)sudo cp-r jre-8u73-linux-x64.tar.gz/usr/local/java
- 现在需要从压缩的.tar.gz文件中提取文件。例如,
sudotarxvzf/usr/local/java/jre-8u73-linux-x64.tar.gz
- (可选)现在可以删除
- 您需要确保您有权执行下载的java。例如,您可以使用
chown-rjre-8u73-linux-x64
- 最后,需要将JAVA_HOME环境变量设置为指向刚刚创建的JAVA文件夹的位置。有。我建议在/etc/profile.d目录中创建一个文件(称为类似于java env.sh的文件),其中包含以下内容:
导出JAVA_HOME=/usr/local/JAVA/jre-8u73-linux-x64 导出路径=$PATH:$HOME/bin:$JAVA_HOME/bin
- 您可能还需要通过执行
来告诉Ubuntu使用旧版本sudo-update-java-alternations-set/path/to/java/version
- 打开一个新的终端窗口,检查
现在是否提供旧版本java-version
更好的方法是仅为TinyOS创建一个独立的开发VM环境,因为您并不真正希望在您的主机上有旧版本的Java。你可以用这样的方法来做。如何做到这一点将是太长的回答,检查出来 这是由于TinyOS构建工具链试图使用最新(版本9)Java中不推荐的Java功能造成的。您需要安装较旧的Java JRE版本,并将Java_主页设置为此较旧版本:
- 首先在终端中键入
检查当前的Java版本。如果不是版本9或更高版本,请停止-这可能不是您需要的解决方案Java-version
- 去医院
- 在“JavaSE”(SE代表“标准版”,这是我们需要的),选择一个旧版本。TinyOS正式支持版本1.4和5,但我知道版本7可以正常工作,因为这是我正在使用的版本。版本8也可以正常工作
- 然后在“JavaSE运行时环境”下,选择Linuxx86(如果您使用的是32位Ubuntu)或Linuxx64(对于64位)。您可以通过在终端中键入
来确定是32位还是64位。选择以“.tar.gz”结尾的版本(.rpm用于其他类型的Linux)。您将需要使用Oracle帐户登录,如果没有,则需要注册uname-i
- 下载.tar.gz文件。您可以决定将此版本的Java保存在系统的何处。您可以将其保存在主目录中的某个位置,但按照惯例,我们通常将此类程序保存在“/usr/local/java”中。如果您想保留它,您必须使用
,例如sudo cp
(您的文件名可能不同)sudo cp-r jre-8u73-linux-x64.tar.gz/usr/local/java
- 现在需要从压缩的.tar.gz文件中提取文件。例如,
sudotarxvzf/usr/local/java/jre-8u73-linux-x64.tar.gz
- (可选)现在可以删除
- 您需要确保您有权执行下载的java。例如,您可以使用
chown-rjre-8u73-linux-x64
- 最后,需要将JAVA_HOME环境变量设置为指向刚刚创建的JAVA文件夹的位置。有。我建议在/etc/profile.d目录中创建一个文件(称为类似于java env.sh的文件),其中包含以下内容:
导出JAVA_HOME=/usr/local/JAVA/jre-8u73-linux-x64 导出路径=$PATH:$HOME/bin:$JAVA_HOME/bin
- 您可能还需要告诉Ubuntu使用旧版本