当前位置:网站首页 > Java基础 > 正文

rhino教程java



<p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"><strong style="line-height:normal;"> 6、Rhino如何调用js文件</strong></p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  当然,除了在命令行的方式,我们还可以使用操纵JavaScript文件。下面是一段JavaScript代码,主要目的是判断该数是否为质数。代码如下:</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"></p> <div style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;color:rgb(51,51,51);background-color:rgb(221,221,221);border-style:solid;width:612px;"> <tbody> <tr> <td> <ol> <li><span>function&nbsp;isPrime&nbsp;(num) &nbsp;</span></li> <li><span>{ &nbsp;</span></li> <li> <span>if&nbsp;(num&nbsp;</span><span><strong>&lt;</strong></span><span>=&nbsp;1)&nbsp;{ &nbsp;</span> </li> <li><span>print("Enter&nbsp;an&nbsp;integer&nbsp;no&nbsp;less&nbsp;than&nbsp;2.") &nbsp;</span></li> <li><span>return&nbsp;false &nbsp;</span></li> <li><span>} &nbsp;</span></li> <li> <span>var&nbsp;</span><span>prime</span><span>&nbsp;=&nbsp;</span><span>true</span>&nbsp;</li> <li> <span>var&nbsp;</span><span>sqrRoot</span><span>&nbsp;=&nbsp;</span><span>Math</span><span>.round(Math.sqrt(num)) &nbsp;</span> </li> <li> <span>for&nbsp;(var&nbsp;</span><span>n</span><span>&nbsp;=&nbsp;</span><span>2</span><span>;&nbsp;prime&nbsp;&amp;&nbsp;n&nbsp;</span><span><strong>&lt;</strong></span><span>=&nbsp;sqrRoot;&nbsp;++n)&nbsp;{ &nbsp;</span> </li> <li> <span>prime</span><span>&nbsp;=&nbsp;(num&nbsp;%&nbsp;n&nbsp;!=&nbsp;0) &nbsp;</span> </li> <li><span>} &nbsp;</span></li> <li><span>return&nbsp;prime &nbsp;</span></li> <li><span>}</span></li> </ol> </td> </tr> </tbody> </div> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"></p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  我们保存文件为C:isPrime.js。然后我们需要调用load方法加载该脚本。最后,我们可以调用isPrime方法来判断是否为质数。</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"></p> <div style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;color:rgb(51,51,51);background-color:rgb(221,221,221);border-style:solid;width:612px;"> <tbody> <tr> <td> <ol> <li><span><span>js</span><span><strong>&gt;</strong></span><span>&nbsp;load("C:/isPrime.js") &nbsp;</span></span></li> <li> <span>js</span><span><strong>&gt;</strong></span><span>&nbsp;isPrime(33); &nbsp;</span> </li> <li><span>false &nbsp;</span></li> <li> <span>js</span><span><strong>&gt;</strong></span><span>&nbsp;isPrime(31) &nbsp;</span> </li> <li><span>true</span></li> </ol> </td> </tr> </tbody> </div> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"></p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  需要注意的是,注意:文件分隔符需要调整,是“/”而不是“”。</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  上述部分示例可以参见Rhino官方网站。另外examples目录下很多例子都值得参考与学习。</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  刚才使用JavaScript操纵Java对象。接下来我们看看如何使用Java程序访问JavaScript</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  Java对象操纵JavaScript</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  下面是一段Java代码,用来运行数学表达式。代码如下:</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"></p> <div style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;color:rgb(51,51,51);background-color:rgb(221,221,221);border-style:solid;width:612px;"> <tbody> <tr> <td> <ol> <li><span>package&nbsp;com.example; &nbsp;</span></li> <li><span>import&nbsp;sun.org.mozilla.javascript.internal.Context; &nbsp;</span></li> <li><span>import&nbsp;sun.org.mozilla.javascript.internal.Scriptable; &nbsp;</span></li> <li><span>publicclass&nbsp;Test&nbsp;{ &nbsp;</span></li> <li><span>publicstaticvoid&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;</span></li> <li> <span>Context&nbsp;</span><span>cx</span><span>&nbsp;=&nbsp;</span><span>Context</span><span>.enter(); &nbsp;</span> </li> <li><span>try&nbsp;{ &nbsp;</span></li> <li> <span>Scriptable&nbsp;</span><span>scope</span><span>&nbsp;=&nbsp;</span><span>cx</span><span>.initStandardObjects(); &nbsp;</span> </li> <li> <span>String&nbsp;</span><span>str</span><span>&nbsp;=&nbsp;</span><span>"3/(1+2)"</span><span>; &nbsp;</span> </li> <li> <span>Object&nbsp;</span><span>result</span><span>&nbsp;=&nbsp;</span><span>cx</span><span>.evaluateString(scope,&nbsp;str,&nbsp;null,&nbsp;1,&nbsp;null); &nbsp;</span> </li> <li><span>System.out.println(str&nbsp;+&nbsp;"="&nbsp;+&nbsp;Context.toNumber(result)); &nbsp;</span></li> <li><span>}&nbsp;finally&nbsp;{ &nbsp;</span></li> <li><span>Context.exit(); &nbsp;</span></li> <li><span>} &nbsp;</span></li> <li><span>} &nbsp;</span></li> <li><span>}</span></li> </ol> </td> </tr> </tbody> </div> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"></p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  运行Java com.example.Test,输出结果如下:</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  3/(1+2)=1.0</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  之所以是1.0而不是1,是因为Context.toNumber(result)返回的类型为double。另一个值得注意的是,这里import的package属于JDK 6.0。因此,在不需要Rhino提供的js.jar,该程序仍能独立运行。</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;">  虽然Rhino作为JavaScript运行时,功能非常强大,但在性能上却无法与其他的JavaScript运行时(比如Google Chrome的V8 JavaScript Engine)相提并论。值得注意的是,JRuby专家Charles Oliver Nutter也开始参与Rhino项目中,以提升Rhino JavaScript运行时的速度,进而实现与V8的竞争。而Oracle在对JVM上的JavaScript改进与优化,我们有理由期待,在未来,新一代JavaScript运行时Nashorn的速度将会得到极大的提升。</p> <p style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;margin-top:10px;margin-bottom:10px;padding:0px;"><br></p> <p style="margin-top:10px;margin-bottom:10px;padding:0px;"><font>本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/</font><br></p> 

  • 上一篇: java视频压缩教程
  • 下一篇: java306教程全套
  • 版权声明


    相关文章:

  • java视频压缩教程2025-11-27 22:18:05
  • Java破解vip教程2025-11-27 22:18:05
  • java451教程2025-11-27 22:18:05
  • 兄弟连java变量教程2025-11-27 22:18:05
  • java 409集教程2025-11-27 22:18:05
  • java306教程全套2025-11-27 22:18:05
  • java实用教程 耿2025-11-27 22:18:05
  • 网易java教程2025-11-27 22:18:05
  • java教程二进制2025-11-27 22:18:05
  • java程序设计教程pdf2025-11-27 22:18:05