Java 脚本的用途是什么?如何让这两种语言进行交流

Java 脚本的用途是什么?如何让这两种语言进行交流,java,scripting,Java,Scripting,[对不起,我的语法和语法很糟糕,但我是意大利人] 我知道有很多脚本语言,比如lua、python、javascript。。 我通常用java编程,但我仍然不知道如何使脚本与主程序通信 ScriptEngine js = new ScriptEngineManager().getEngineByName("js"); 然后我读取一个包含脚本的文件,并将其插入res变量中 我运行代码并停止。但是我只能让脚本在控制台上打印文本。 最后,我的问题是:“为什么脚本有用?”我可以用一个没有的脚本做什么?做

[对不起,我的语法和语法很糟糕,但我是意大利人] 我知道有很多脚本语言,比如lua、python、javascript。。 我通常用java编程,但我仍然不知道如何使脚本与主程序通信

ScriptEngine js = new ScriptEngineManager().getEngineByName("js");
然后我读取一个包含脚本的文件,并将其插入res变量中

我运行代码并停止。但是我只能让脚本在控制台上打印文本。
最后,我的问题是:“为什么脚本有用?”我可以用一个没有的脚本做什么?做某些事情更简单吗?

我用javascript编写了这个脚本:

load("lib.js");

imgSize = 60;

setSound("bounce.wav");
rndSound(["bounce.wav", "gigi.wav"]);
rndSoundDisable(3, 1);
rndImg(1920 - imgSize * 2, 1080 - imgSize * 2, "logo.png");
addImg(0, 0, "bg.png");
rndImg(1920 - imgSize * 2, 1080 - imgSize * 2, "blub.png");

data;
您可以想象函数的作用。下面是java代码:

ScriptEngine INTERPRETER = new ScriptEngineManager().getEngineByName("js")
String scriptText = "";
FileReader fr = null;
BufferedReader br = null;
try {
    fr = new FileReader(new File(script));
    br = new BufferedReader(fr);

    String currentLine;
    while((currentLine = br.readLine()) != null)
        scriptText += currentLine;

} catch (IOException e) {
    System.err.println("Script " + script + " not found");          
}
ScriptObjectMirror obj = null;

try {
    obj = (ScriptObjectMirror) INTERPRETER.eval(scriptText);
} catch (Exception e) {
    e.printStackTrace();
}

return obj.to(String[].class);

函数返回字符串[],其中包含来自js的数据值

您的脚本可以
返回
值。在脚本末尾,我可以写return x,Object value=js.eval(res);将返回值给我?我使用脚本来计算用户键入的函数。Object result=js.eval(“3*sin(2.5)/17”)例如,我可以创建一个游戏,通过创建一个包含游戏需要的所有信息的对象,并从脚本返回它来生成用javascript或lua或其他语言编写的关卡?@Ralf Renz,这样我就可以创建一个游戏,通过创建一个包含所有信息的对象来生成用javascript或lua或其他语言编写的关卡在游戏需要时,从脚本中返回它?我如何返回它?我只需在脚本末尾写下我要返回的变量的名称,或者使用关键字?
ScriptEngine INTERPRETER = new ScriptEngineManager().getEngineByName("js")
String scriptText = "";
FileReader fr = null;
BufferedReader br = null;
try {
    fr = new FileReader(new File(script));
    br = new BufferedReader(fr);

    String currentLine;
    while((currentLine = br.readLine()) != null)
        scriptText += currentLine;

} catch (IOException e) {
    System.err.println("Script " + script + " not found");          
}
ScriptObjectMirror obj = null;

try {
    obj = (ScriptObjectMirror) INTERPRETER.eval(scriptText);
} catch (Exception e) {
    e.printStackTrace();
}

return obj.to(String[].class);