我正在尝试使用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})
)
);
如何调试此问题?
答案 0 :(得分:0)
sun.org.mozilla
指的是Rhino JavaScript引擎。除非您有最新版本,否则Rhino不支持Date.parse()
:
使用Rhino控制台检查版本:
java -jar $RHINOPATH/js.jar #Rhino, `$RHINOPATH` is environment specific
jrunscript -q #Rhino via Mustang
<强>参考强>