When my piece of code below runs on Eclipse on both on Mac and Win8 (both are with Open JDK-17.0.2) below I get the java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null, while on Visual Studio Code it runs ok.
What is the problem and what should be done to fix the issue ? Your piece of advice would be appreciated. Looking forward to hearing from the community.
import java.util.*;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class uselessSequenceGenerator {
public static void main(String[] args) throws Exception {
ArrayList<Character> operators = new ArrayList<Character>(Arrays.asList('*', '/', '+', '-'));
double number = secretNumGenerator(5, operators);
//double number = secretNumGenerator(3, operators);
//double number = secretNumGenerator(8, operators);
//double number = secretNumGenerator(1, operators);
//double number = secretNumGenerator(0, operators);
System.out.println(number);
}
public static double secretNumGenerator(int n, ArrayList<Character> operators)
{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String ret = "";
ret += gen(n, operators, ret, 0);
double result = 0;
try {
result = (double)engine.eval(ret);
} catch (Exception e) {
System.out.println(e);
}
return result;
}
private static String gen(int n, ArrayList<Character> operators, String ret, int i)
{
ret += n ;
if(n > 1)
{
ret += operators.get(i);
ret = gen(n - 1, operators, ret, i + 1) ;
}
return ret;
}
}