gpt4 book ai didi

将 Java 与 Ruby 结合使用时出现 java.lang.NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-03 16:31:15 24 4
gpt4 key购买 nike

我正在尝试在 java 中调用 ruby​​ 函数。但是当我运行程序时我得到了一个NullPointerException
这是我的java代码

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.InputStream;

public class MyProgram
{

public static void main(String[] args) throws IOException, NoSuchMethodException
{
try
{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine rbEngine = mgr.getEngineByExtension("rb");

InputStream is = ClassLoader.getSystemResourceAsStream("src/myruby.rb");
Reader reader = new InputStreamReader(is);
rbEngine.eval(reader);
Invocable invocableEngine = (Invocable)rbEngine;

if (invocableEngine != null)
{
int set = (Integer) invocableEngine.invokeFunction("myfunc",6,6);
}

}
catch (ScriptException e)
{
System.out.println("\nScriptException = "+e);
}
}
}

myruby.rb 文件包含

def myfunc(a,b)
f=a+b
return f
end

我得到的错误是,

Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at MyProgram.main(MyProgram.java:22)

请帮我找出问题所在。
提前致谢。

最佳答案

InputStream is = ClassLoader.getSystemResourceAsStream("src/myruby.rb");

这里,是空的。

尝试使用绝对路径打开文件。

如果找到您的文件,则 ClassLoader.getSystemResourceAsStream 有问题。

关于将 Java 与 Ruby 结合使用时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546310/

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