由于我使用的标准Java代理检测错误 nashorn获取特定网址的代理 proxy.pac文件(适用于IE和Firefox)。
我在这段代码中得到了StackoverflowError:
while (retrycounter < 50) {
try {
engine.eval(myscript);
break;
} catch (StackOverflowError e) {
retrycounter ++;
}
}
奇怪的是,当我在调试模式下运行此代码时,它可以工作,当我 在engine.eval(myscript)上创建一个断点;并在调试器中跳过。
pac文件相当大 - 900行。 我在文件中有很多shExpMatch(.....)行。
当我删除第400-600行时,我的脚本也可以在非调试模式下工作。 当我删除400-500行时,它不起作用。 当我删除第500-600行时,它不起作用。
Nashorn引擎问题与我的文件大小有关吗?
我没有发布更多代码,因为它可以在调试模式下工作,也可以缩小文件。
使用Java 1.8.0_73存在问题。 它的工作原理是1.8.0_77和1.8.0_91。
是否有可能在旧版本中运行脚本? 也许通过引擎设置?
最好的问候
答案 0 :(得分:0)
相同的代码适用于较新的java版本。 1.8.0_91(我认为1.8.0_7xx也有效,但不确定)。