JDK 8
反应0.13.1
在使用Nashorn呈现ReactJS组件时获得以下错误
Error: Invariant Violation: renderToString(): You must pass a valid ReactElement.
component.js
var Controller = React.createClass({
render: function() {
return (React.createElement("div",null,"Hello, World!"));
}
});
var re
我的要求是解析javascript文件并获得json格式的AST(抽象语法树)。esprima.parseScript()函数接受js代码并正确地生成AST。但是,如何使用esprima从不同的js文件中读取js代码并对其进行解析?我需要能够从Java类调用js函数。
我尝试用Java读取我想要解析的js,并将其作为输入传递给函数。但是,下面的代码给出了一个异常。
parser.js:
load('esprima.js');
function parsejs(jscode){
var op = esprima.parseScript(jscode)
我试图在Java环境中使用nashorn.运行以下代码
load("fx:base.js");
load("fx:controls.js");
load("fx:graphics.js");
var material = new PhongMaterial();
material.diffuseColor = Color.LIGHTGREEN;
material.specularColor = Color.rgb(30, 30, 30);
var meshView = Java.to([
new Box(200, 200, 200),
如果有的话,我能做些什么来阻止纳什霍恩一直扔ArrayIndexOutOfBoundsException呢?
这个看似琐碎而正确的代码片段(这里没有错误)导致Nashorn出现异常:
文件test.js:
var test;
(function (test) {
(function (renderer) {
var posts = {
0: null,
1: null,
2: null,
3: null // comment out this line --> n
当我尝试加载Rhino (load("nashorn:mozilla_compat.js"))的Nashorn兼容性文件时,出现以下错误:
java.lang.RuntimeException: javax.script.ScriptException: ReferenceError: "net" is not defined in nashorn:mozilla_compat.js at line number 67
我想尽一切办法让它工作,但没有任何帮助:
我正在使用Intellij,我希望在一个由Nashorn Java8评估的javascript中实现websocket。我的javascript文件顶部有以下一行:
var socket = new WebSocket("http://localhost:12345/echo");
但它却给了我这个错误:
Caused by: javax.script.ScriptException: ReferenceError: "WebSocket" is not defined in src/sample/hello.js at line number 8
at
我正在迁移到JDK 8,不得不使用Nashorn来处理JS文件。
我曾经能够使用JDK7Rhino JS engine处理一个具有1个巨大函数的300MB文件。应该注意的是,300MB是由我的工具处理的一个生成的文件,我知道在一个巨大的文件中拥有一个巨大的函数并不是一个好的做法。
现在我不能,我正在获取java.lang.runtimeException: Class file too large!,使用以下堆栈跟踪:
at jdk.nashorn.internal.codegen.CompilationPhase$BytecodeGenerationPhase.transform(Com
我想试试Nashorn脚本功能。一切正常,我似乎能够从我的.js脚本调用静态方法,如下所示:
var fun3 = function() {
print("Another day!");
var Go = Java.type('somePack.Go');
var result = Go.fun1('John Doe');
print("\n" + result);
}
在我的"Go“java类中:
public static String fun1(String name) {
S
我正在尝试创建一个应用程序(游戏),该应用程序(游戏)将使用java操作物理、逻辑等,但将使用现有的javascript库执行脚本、图形和ui等操作,但当通过nashorn nashorn.eval("load('chart.js')");加载chart.js(和其他库)时,我会得到以下(或与其他库类似的) Exception in thread "main" javax.script.ScriptException: ReferenceError: "window" is not defined in chart.js at l
我想检索在JS中生成的对象,将它们存储在Java中,然后调用它们上的方法。这适用于Java 7,现在对于Java 8,我得到了一个例外:
Exception in thread "main" java.lang.IllegalArgumentException: no current Global instance for nashorn
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:492)
at jdk.nashorn.api.scri
我想在我的Nashorn javascript中加载一个第三方类,它作为一个可激发的shell脚本运行,我检查下面的线程,但是没有得到提示。
如何访问Nashorn 中javascript中的类方法
这是我的剧本
#!/usr/java/default/bin/jjs -scripting
var db_url = "jdbc:sqlserver://1.2.3.4:1433;databaseName=email;user=email;password=email;";
var user = "email";
var pass = "email"