我一直在到处寻找,但什么也没找到,所以我想使用java内置的JavaScript引擎,但是用户不能导入java类,就像下面的任何一个:
importPackage(package.example);或
importClass(package.example.MessWithEverythingClass)或
new package.example.MessWithEverythingClass(ApplicationIsBroken aib);发布于 2014-07-07 09:17:57
我有点困惑。根据您的标题,我认为您希望阻止用户在JavaScript中导入类。在这种情况下,这个问题已经在这里被提出了,security problem with Java ScriptEngine。一些解决方案建议查看Java,另一位用户表示,他通过将"importPackage = SecurityManager“放在所有脚本的顶部来解决这个问题。
相反,根据您的脚本内容,我感觉您在导入Java类时遇到了问题。如果是这种情况,我在这里回答,Use a jar in JavaScript through Java ScriptEngine基本上有另一种在JavaScript内部导入的方法,您没有展示。我是这样做的,
pack = Packages.abc.foo.pack.name;
var foo = new pack.ClassFromTheJarFile("arg1","arg2");
foo.doSomething();
var fooSister = new pack.AnotherCLassFromTheJarFile("arg1");
fooSister.doSomthingFromThisClass();尽管该示例使用来自jar文件的包,但它不必来自jar,并且代码仍然保持不变。
https://stackoverflow.com/questions/23444878
复制相似问题