1

我正在尝试使用 ANT SO 问题获取时间戳差异中定义的脚本。

当我使用示例中给出的 Date.parse 时,我在 Javascript 的行上得到 NullPointerException,即在这一行上

<script language="javascript" >

它似乎与 Date.parse 调用有关,但我似乎无法弄清楚。

  <script language="javascript" >
  <![CDATA[
     println("calc js");
     project.setProperty("task.diff",
     Math.abs(
     (Date.parse(project.getProperty("task.stop")) +
     +project.getProperty("task.stop.millis")) -
     (Date.parse(project.getProperty("task.start")) +
     +project.getProperty("task.start.millis"))))
     ]]> 

当我在另一个脚本中使用相同的概念,对原始脚本进行一些更改时,我得到了一个不同的错误 -

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: missing ) 在第 7 行的参数列表 (#7) 之后

在这里,我将 startTime 和 endTime 作为属性发送给宏定义并在其中定义脚本。

            project.setProperty("task.diff", 
                           Math.abs(
                             Date.parse(@{startTime}) - 
                             Date.parse(@{endtime})
                                    )
                               );

我该如何调试这个问题?

4

1 回答 1

0

sun.org.mozilla指的是 Rhino JavaScript 引擎。Date.parse()Rhino 不支持,除非您有最新版本:

Rhino 1.7R3 的新功能

使用 Rhino 控制台检查版本:

java -jar $RHINOPATH/js.jar #Rhino, `$RHINOPATH` is environment specific 
jrunscript -q #Rhino via Mustang

参考

于 2014-02-13T18:45:50.967 回答