我正试图将JavaScript功能引入我的机器人平台,usijng Java 8全新的纳什霍恩引擎。下面是用于创建Nashorn脚本引擎实例的行:
ScriptEngine nashorn = new ScriptEngineManager().getEngineByName("nashorn");在我自己的计算机上运行这个程序很好,但是在部署平台上,生成的nashorn对象是空的,当然,只要使用它,就会给出一个NullPointerException。经过一些调试,我们知道新的ScriptEngineManager()不是空的,但是由.getEngineByName();返回的引擎是空的。
这个问题出现在运行Java8SE嵌入式的第一个机器人roboRIO上。
发布于 2015-01-20 21:00:56
他们正在使用紧致2 Java创建JRE。您应该创建自己的JRE,其中包括nashorn。
发布于 2015-01-22 15:53:28
SE Embedded支持nashorn。
您可以将nashorn.jar从SE嵌入式ext 1.8.0二进制文件复制到jre/lib/ext目录,也可以运行嵌入式JDK中包含的jrecreate.sh工具(ext 1.8.0)。
下面是最新的SE嵌入式下载:
http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.html
下面是一个如何使用jrecreate的示例:
cd dest 1.8.0_xx/bin sh profile compact2 -x nashorn -dest{目标JRE目录}
如果FIRST Robotics包含其他嵌入式扩展,您可以查看当前正在运行的JRE顶部的"bom“文件。这包含用于生成您的JRE的jrecreate命令。
Bob Vandette Java SE Embedded Lead Oracle
https://stackoverflow.com/questions/28054849
复制相似问题