我有6个js文件,我需要将它们全部包含到最终脚本中以通过ScriptEngine的eval方法。我该怎么做?ScriptEngine没有add()方法。我可以用FileReader读取它们,而不是连接这些字符串,但我认为会有更好的方法。 最佳答案 您可以使用重载eval(Reader)以避免必须自己将脚本加载到String中。 关于java-如何让ScriptEngine运行多个javascript文件?,我们在StackOverflow上找到一个类似的问题:
我正在尝试使用ScriptEngineManager和ScriptEngine通过Java执行一些JavaScript代码。我使用Java8我在KarafOSGi下执行这段代码。我使用的示例在示例Java类中运行良好,但将其打包为一个包时出现此错误ScriptEngineManagerproviders.next():javax.script.ScriptEngineFactory:Providerjdk.nashorn.api.scripting。找不到NashornScriptEngineFactory当我查看包的header时,我看到包导入了javax.script,被调用类的包
.NETFramework具有强大的功能,支持在运行时编译代码并运行它,以实现某些类型的脚本功能。CodeProject上已经有一些脚本引擎可用,Microsoft也有自己的库。我正在开发Web自动化软件,我想在应用程序中包含Microsoft脚本引擎。问题是脚本引擎允许在引用的程序集中使用所有命名空间,而我想限制对选定的几个命名空间的使用。usingSystem;//allowed.usingSystem.Linq;//allowed.usingSystem.Reflection;//restrict.如何在脚本中限制命名空间的使用。 最佳答案
javax.script的一个大问题包裹JSR-223是缺少任何明显的方法来沙盒运行的脚本。所以显而易见的问题是:如何对JSR-223脚本进行沙盒处理?有人问过这个问题,甚至有人尝试回答这个问题。这里有两个有趣的问题问这个问题但不幸的是没有捕获要点:SandboxingJSR-223Sandboxingwithjavax.script要点在于,这不仅仅是设置正确的安全策略或使用正确的ClassLoader的问题,因为您要保护的代码不是Java代码,而且它没有类。您可以尝试通过使用ClassLoader为其提供特殊的ProtectionDomain来保护ScriptEngine,但这仅在
我开始使用ScriptEngine来运行javascript代码。我发现它非常有用并且非常适合我的需要,但是缺少一件事,那就是它的调试。我该怎么做?我真的希望能够只放置一个断点或进入并看到js解释器一步一步地运行我的代码。这可能吗? 最佳答案 不可否认,这不是一个很好的答案(但您的问题缺少有关您希望使用哪些JDK或工具进行调试的详细信息)。无论如何,如果您使用IntelliJ作为IDE,它会附带一个Nashorn调试器,允许您单步执行JavaScript代码和任何引用的Java代码。更多细节在这里:http://blog.jetbr
我有以下有效的代码:ScriptEnginejsEngine=ScriptEngineManager.new().getEngineByName("nashorn");jsEngine.eval("somescript");jsEngine.invokeMethod(jsEngine.eval("foo"),"bar");但我想使用预编译的脚本,这样我就不必在每次需要运行时都评估脚本,所以我正在尝试;ScriptEnginejsEngine=ScriptEngineManager.new().getEngineByName("nashorn");CompiledScriptcompil
我可以将像“3*3+3”这样的字符串转换为java中的数学运算吗?? 最佳答案 使用ScriptEngine将其评估为JavaScriptStringxyz="3*3+3";ScriptEngineManagermanager=newScriptEngineManager();ScriptEnginese=manager.getEngineByName("JavaScript");Objectresult=se.eval(xyz);引用:Documentation 关于java-我可以将
我们目前正在为我们的产品之一添加服务器端脚本功能。作为其中的一部分,我正在评估JSR223脚本引擎。由于我们可能会在服务器上运行大量脚本,因此我特别关注这些脚本引擎的内存使用情况。将Rhino(AppleJDK1.6.0_65-b14-462-11M4609、MacOSX10.9.2)与Nashorn(OracleJDK1.8.0-b132)进行比较,每个ScriptEngine实例的内存使用情况似乎存在显着差异。为了对此进行测试,我使用了一个简单的程序来启动10个空白的ScriptEngine实例,然后阻止从标准输入读取数据。然后我使用jmap进行堆转储(jmap-dump:form
我刚开始使用JavaScriptEngine对我的应用程序做一些扩展,然后我注意到我可以在脚本中导入所有java类并不受限制地使用它们。有没有办法指定脚本可以使用哪些类?我不希望他们做java.lang.System.exit(1);这样的事情 最佳答案 那么,您似乎需要了解JavaSecurityManager。这是一个很大的主题,您可能需要仔细阅读它,如果您无法让它为您工作,然后发布一个更具体的问题。 关于java-JavaScriptEngine的安全问题,我们在StackOver
我正在尝试使用ScriptEngine评估Java中的javascript类(class)。这是我正在尝试做的一个简短示例:importjavax.script.ScriptEngineManager;importjavax.script.ScriptEngine;publicclassTest{publicstaticvoidmain(String[]args){ScriptEngineengine=newScriptEngineManager().getEngineByName("js");//CreatesaScriptEngineObjectobj=engine.eval("v