Ant脚本 - 使用Javascript Date.parse

时间:2013-07-01 23:23:20

标签: javascript debugging ant rhino date-parsing

我正在尝试使用Get timestamp difference using 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作为属性发送到macrodef并定义其中的脚本。

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

如何调试此问题?

1 个答案:

答案 0 :(得分:0)

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

New in Rhino 1.7R3

使用Rhino控制台检查版本:

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

<强>参考