MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap
Revision 5 as of 2019-08-23 13:54:54
  • Java
  • rhino

rhino

Rhino is an open-source implementation of JavaScript written entirely in Java.

It is typically embedded into Java applications to provide scripting to end users.

It is embedded in J2SE 6 as the default Java scripting engine.

https://developer.mozilla.org/en-US/docs/Rhino

Invoke JavaScript from Java example

   1 // /tmp/test.js
   2 function isOdd(number) { 
   3   if(number % 2){
   4     return false;
   5   }
   6   else{
   7   return  true;  
   8   }
   9 };

   1 import javax.script.Invocable;
   2 import javax.script.ScriptEngine;
   3 import javax.script.ScriptEngineManager;
   4 import javax.script.ScriptException;
   5 import java.io.FileNotFoundException;
   6 import java.io.FileReader;
   7 
   8 public class JSTest {
   9 
  10         /**
  11          * @param args
  12          */
  13         public static void main(String[] args) {
  14                 ScriptEngineManager sem = new ScriptEngineManager();
  15                 ScriptEngine engine = sem.getEngineByName("ECMAScript");
  16                 FileReader fr = null;
  17                 String path = "/tmp/test.js";
  18                 try {
  19                         fr = new FileReader(path);
  20                 } catch (FileNotFoundException e) {
  21                         System.out.println(String.format("File %s not found", path));
  22                 }
  23 
  24                 if (fr != null) {
  25                         try {
  26                                 engine.eval(fr);
  27                                 if (engine instanceof Invocable) {
  28                                         Invocable iv = (Invocable) engine;
  29 
  30                                         try {
  31                                                 System.out.println(iv.invokeFunction("isOdd", new Integer(4)));
  32                                                 System.out.println(iv.invokeFunction("isOdd", new Integer(5)));
  33                                         } catch (NoSuchMethodException ex) {
  34                                                 ex.printStackTrace();
  35                                         } catch (ScriptException ex) {
  36                                                 ex.printStackTrace();
  37                                         }
  38                                 }
  39                         } catch (ScriptException ex) {
  40                                 ex.printStackTrace();
  41                         }
  42                 }
  43         }
  44 
  45 }

switch case example

  • rhino -strict example.js

   1 var caseA = ["a","e","i","o","u"];
   2 var caseB = ["b","c","d","f","g"];
   3 var caseC = ["h","j","k","l","m"];
   4 var caseD = ["n","p","q","r","s","t","v","w","x","y","z"];
   5 
   6 function console(){}
   7 
   8 console.log = function(message){
   9   print(message);
  10 };
  11 
  12 function check_if(string){
  13   var letter = string[0];
  14   if( caseA.indexOf(letter) >=0) return "A";
  15   if( caseB.indexOf(letter) >=0) return "B";
  16   if( caseC.indexOf(letter) >=0) return "C";
  17   if( caseD.indexOf(letter) >=0) return "D";
  18 }
  19 
  20 function check_case2(string){
  21   var letter = string[0];
  22 
  23   switch(true){
  24     case caseA.indexOf(letter) >=0: return "A";
  25     case caseB.indexOf(letter) >=0: return "B";
  26     case caseC.indexOf(letter) >=0: return "C";
  27     case caseD.indexOf(letter) >=0: return "D" ; 
  28   }
  29 
  30 }
  31 
  32 function check_case(string){
  33   var letter = string[0];
  34   switch(letter){
  35     case "a":
  36     case "e": 
  37     case "i":
  38     case "o":
  39     case "u":
  40       return "A";
  41     case "b":
  42     case "c":
  43     case "d":
  44     case "f":
  45     case "g":
  46       return "B";
  47     case "h":
  48     case "j":
  49     case "k":
  50     case "l":
  51     case "m":
  52       return "C";
  53     default:
  54       return "D";
  55    }
  56 }
  57 
  58 console.log( check_if("adfgt") );
  59 console.log( check_if("fdfgt") );
  60 console.log( check_if("kdfgt") );
  61 console.log( check_if("wdfgt") );
  62 console.log("####");
  63 console.log( check_case("adfgt") );
  64 console.log( check_case("fdfgt") );
  65 console.log( check_case("kdfgt") );
  66 console.log( check_case("wdfgt") );
  67 console.log("####");
  68 console.log( check_case2("adfgt") );
  69 console.log( check_case2("fdfgt") );
  70 console.log( check_case2("kdfgt") );
  71 console.log( check_case2("wdfgt") );
  72 console.log("####");
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01