leo-007 发表于 2023-2-20 09:12:10

Java.type('java.lang.ProcessBuilder')的引用问题

管理大大
我们在“服务管理”写了一些业务处理逻辑,用到了

var ProcessBuilder = Java.type('java.lang.ProcessBuilder');
var Arrays = Java.type('java.util.Arrays');
var pb = new ProcessBuilder(Arrays.asList('ls', 'll'));

但是运行之后,后台提示:
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: java.lang.ProcessBuilder

      at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:531) ~

      at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:428) ~

      at jdk.nashorn.api.scripting.NashornScriptEngine$3.eval(NashornScriptEngine.java:521) ~

      at com.x.base.core.project.scripting.JsonScriptingExecutor.eval(JsonScriptingExecutor.java:225) ~

      at com.x.program.center.jaxrs.agent.ActionExecute.execute(ActionExecute.java:80) ~

      ... 67 more

Caused by: java.lang.ClassNotFoundException: java.lang.ProcessBuilder

      at jdk.nashorn.internal.runtime.Context.findClass(Context.java:1169) ~

      at jdk.nashorn.internal.objects.NativeJava.simpleType(NativeJava.java:546) ~

      at jdk.nashorn.internal.objects.NativeJava.type(NativeJava.java:326) ~

      at jdk.nashorn.internal.objects.NativeJava.type(NativeJava.java:318) ~

      at jdk.nashorn.internal.objects.NativeJava.type(NativeJava.java:314) ~

      at jdk.nashorn.internal.scripts.Script$Recompilation$475$1455A$\^eval\_.o#execLinuxCmd(<eval>:47) ~[?:?]

      at jdk.nashorn.internal.scripts.Script$Recompilation$474$\^eval\_.o(<eval>:65) ~[?:?]

      at jdk.nashorn.internal.scripts.Script$Recompilation$473$\^eval\_.:program(<eval>:1) ~[?:?]

      at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655) ~

      at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513) ~

      at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527) ~

      at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:428) ~

      at jdk.nashorn.api.scripting.NashornScriptEngine$3.eval(NashornScriptEngine.java:521) ~

      at com.x.base.core.project.scripting.JsonScriptingExecutor.eval(JsonScriptingExecutor.java:225) ~

      at com.x.program.center.jaxrs.agent.ActionExecute.execute(ActionExecute.java:80) ~

      ... 67 more
但是我在其他服务管理的脚本中,使用了如:
var ArrayList = Java.type('java.util.ArrayList');
var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair');
var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection');
都是正常使用的。请问var ProcessBuilder = Java.type('java.lang.ProcessBuilder'); 有是平台有什么限制吗?









论坛管理员 发表于 2023-2-20 10:14:05



安全考虑,系统默认这里是禁掉的,您需要用的话这里可以去掉

leo-007 发表于 2023-2-20 10:34:59

论坛管理员 发表于 2023-2-20 10:14
安全考虑,系统默认这里是禁掉的,您需要用的话这里可以去掉

好的。感谢,我试一下

论坛管理员 发表于 2023-2-20 16:19:10

:handshake
页: [1]
查看完整版本: Java.type('java.lang.ProcessBuilder')的引用问题