我想创建沙箱javascript环境并限制对java类的所有访问,但是我指定的那个。我试图通过使用Context
Context.initSafeStandardObjects()
来实现这一目标
有没有办法让javascript使用其他类?
如果我使用Context.initStandardObjects()
我可以访问不是我想要的所有java类。
答案 0 :(得分:0)
我找到了解决方案。您可以使用以下命令将一个java类实例添加到javascript中:
Object wrappedTest = Context.javaToJS(test, scope);
ScriptableObject.putProperty(scope, "test", wrappedTest); //Where text here is name of the variable
你可以在javascript中使用这个类的方法,即使使用initSafeStandardObjects
Object result = cx.evaluateString(scope, "test.sampleMethod()", "<cmd>",1, null);
System.out.println(cx.toString(result));