gpt4 book ai didi

java - 从 JRuby 代码更改 java 变量?

转载 作者:搜寻专家 更新时间:2023-10-31 20:30:33 25 4
gpt4 key购买 nike

正如标题所说,我想从我的 jruby 代码中更改 java 中的变量

更具体地说,我的 Java 代码中有一个整数,它还没有值,我想用我的 JRuby 代码给这个变量一个值,但我不知道该怎么做。

这就是我对 JRuby 代码的理解......

require 'java'
puts "Set player health here"
playerHealth = 3 # Setting player health here!

但是还没有用java写过东西。到目前为止,这几乎是我所有的......

最佳答案

据我了解,您正在尝试从 Java 调用 JRuby 引擎,因此您可以执行类似这样的操作来修改 JRuby 中的 Java 变量:

import javax.script.*;

public class EvalJRubyScript {
public static void main(String[] args) throws Exception {
ScriptEngineManager factory = new ScriptEngineManager();

int playerHealth = 0;

ScriptEngine engine = factory.getEngineByName("jruby");
ScriptContext context = engine.getContext();
context.setAttribute("playerHealth", playerHealth, ScriptContext.ENGINE_SCOPE);

try {
engine.eval("$playerHealth = 42");
playerHealth = (Integer)context.getAttribute("playerHealth", ScriptContext.ENGINE_SCOPE);

System.out.println(playerHealth);
} catch (ScriptException exception) {
exception.printStackTrace();
}
}
}

请注意,在脚本中 playerHealth 是一个全局变量。

查看 this link如果您想加载外部 JRuby 脚本而不是评估代码,请了解更多详细信息。

关于java - 从 JRuby 代码更改 java 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com