为什么Java Nashorn __DIR __,_ _ _ 3和__FILE__为空?

Ed *_*oel 5 javascript java scriptengine java-8 nashorn

我试图获得__DIR__,__LINE__并且由JavaScript Nashorn Engine(JDK 8)编译和评估的JavaScript文件中的__FILE__ Nashorn全局变量.

但是,所有这些都返回NULL ...

它们与某些特定的Nashorn配置有关吗?它没有在文档中说任何有关使其工作的任何其他配置的内容.

小智 4

我知道这是一个老问题,但当我想出一个简单的解决方案时,我想分享它以帮助面临同样问题的人。

事实上,您可以轻松地使用__FILE____DIR____LINE__if 来代替通常的操作:

engine.eval(new FileReader("path_to_your_js"));
Run Code Online (Sandbox Code Playgroud)

您实际上调用了一个小的 JS 代码来加载您的文件:

engine.eval("load('path_to_your_js')");
Run Code Online (Sandbox Code Playgroud)