当我运行以下代码时,将engine
变量设置为null
使用OpenJDK 7(java-7-openjdk-i386
)时的值。
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class TestRhino {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
try {
System.out.println(engine.eval("1+1"));
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java-6-openjdk
与Oracle 一起使用可以很好地运行jre1.7.0
。知道为什么吗?
我正在使用Ubuntu 11.10。所有JVM都安装在下/usr/lib/jvm
。
[更新:这是一个错误,现已修复
]
简而言之,这可能是一个错误。
Rhino支持类(com.sun.script.javascript.*
)未被编译为rt.jar
1(尽管我发现这是Sun和Mozilla之间的合并问题,而且我知道存在命名空间问题,但它们确实存在于OpenJDK
7源代码中,并在makefile中进行了引用) ,他们正在从失踪resources.jar
的META-INF/services
为好。OpenJDK
6并非如此,它具有以下内容META-INF/services/javax.script.ScriptEngineFactory
:
#script engines supported
com.sun.script.javascript.RhinoScriptEngineFactory #javascript
尽管这可能是一个发行决定2,但没有书面理由,因此我在Ubuntu OpenJDK
7启动板中提交了错误#982501。我得到一个答案会更好。
1根据此线程,
我在某处听说Mozilla出于未知的原因不接受Sun对其主干分支的更改,但这是在开源之前进行的。
还存在一些冲突问题,这些冲突问题是由JRE版本和BYOR(自带犀牛)版本相互冲突引起的(例如,Ubuntu OpenJDK
7启动板上的错误#255149)。但是,该源代码位于OpenJDK
7
源代码中,并在makefile中提到,而上述线程中提到的BSD端口具有相同的源代码。
2根据此Sun
bug#6876736,这是基于发行版的决策:
犀牛源代码不是OpenJDK的一部分,要由发行版来添加。
与他们已经签入OpenJDK的事实有所不同,但是我认为想法是Rhino不在JDK规范中。
我在Java中有一个与MySQL连接的多类项目,我可以与这个SQL数据库建立连接,但当我试图将它读入数组时,它得到的是废话,而不是所请求的信息。我做错了什么? 它在sql定义下面出现了一条弯曲的线条,说它们从来没有被读取过,但我就是不明白为什么会这样!它构建得很好,可以看到数据库中有行,但它返回以下内容: 显示“java2assignment3.dvd@5e0010bc”和“java2assign
问题内容: 我在Java中具有JSON序列化对象的字符串表示形式,例如。我如何解析并将其返回到JavaScript上下文,就像在JS中一样?谢谢。 问题答案: Rhino的最新版本只有四个arg,第四个不能为null。为了解决这个问题,您必须创建一个实现org.mozilla.javascript.Callable的简单类: 然后可以像这样调用NativeJSON.parse:
我的目的是在AdaptOpenJDK 8 VM中提供一个JSR-223 javascript引擎。 所以我想用已经熟悉的犀牛。 并指定在那里下载jsr-223脚本引擎包装器。这里: https://java.net/projects/scripting ,但是这个链接已经死了。 我在哪里可以找到Rhino的JSR-223包装器? 或者可能有更好的替代方案,如JSR-223 JavaScript-E
首先我知道这是一个重复的问题。但我已经搜索并尝试从谷歌上列出的stackoverflow到quora,但仍然无法解决Get方法仍然返回null的问题。 这是我的类登录模型。com包下的java。你好模型 这是我的登录视图。com包下的java。你好看法 我想从menuView调用我的用户名。com包下的java。你好登录成功后查看 根据我在loginModel中调用Get方法时的问题,messag
我有一个返回< code>List的方法。现在我想知道如何正确放置< code>try/catch块。如果我将< code>return语句放在< code>try中,我会得到错误 并非所有代码路径都返回值 如果我放置在之后(就像我目前所做的那样),即使在之后,它也会返回。那么最好的方法应该是什么? 方法如下:
我正在尝试修改一些嵌入在Java中的Javascript代码,以将多个值返回给调用Java代码。 Java代码(调用Javascript): Javascript代码(由Java调用): 我希望返回多个值。 我尝试修改Javascript以返回HashMap,如下所示: 但是当我在Java端进行强制转换时,我得到了一个ClassCastException: 结果: 我不喜欢在HashMap中返回它