zoukankan      html  css  js  c++  java
  • Learning Rhino 2

    Hello Rhino
    First, look at my examples' file structure:

    RhinoTest
    	lib
    		js.jar
    	scripts
    		hello.js
    		file1.js
    	run.bat
    

    My first rhino example is hello.js:

    for (var i = 0; i < arguments.length; i++) {
        print('arguments[' + i + '] = ' + arguments[i]);
    }
    
    function add() {
        var result = 0;
        for (var i = 0; i < arguments.length; i++) {
            result += arguments[i];
        }
        return result;
    }
    print('2 + 5 + 3 = ' + add(2, 5, 3));
    

    The hello.js is executed through batch file run.bat:

    @echo off
    
    echo.
    echo ---------- hello ----------
    java -cp libjs.jar org.mozilla.javascript.tools.shell.Main scriptshello.js Hello Rhino
    

    And the result:

    arguments[0] = Hello
    arguments[1] = Rhino
    2 + 5 + 3 = 10
    

    How to get user’s current working directory
    We all know java.lang.System class contains several useful fields and methods.
    The getProperties method can be used to determine the current system properties.

    var System = Packages.java.lang.System;
    
    print('Working directory = ' + System.getProperty('user.dir'));
    print('Home directory = ' + System.getProperty('user.home'));
    print('Account name = ' + System.getProperty('user.name'));
    print('Line separator ("\n" on UNIX) = ' + (String(System.getProperty('line.separator')) === 'rn' ? '\r\n' : '\n'));
    print('File separator ("/" on UNIX) = ' + System.getProperty('file.separator'));
    

    Output:

    Working directory = D:documentsRhinoTest
    Home directory = C:Documents and Settingssanshi
    Account name = sanshi
    Line separator ("n" on UNIX) = rn
    File separator ("/" on UNIX) = 
    

    File or Path exist

    var System = Packages.java.lang.System;
    var File = Packages.java.io.File;
    var userDir = System.getProperty('user.dir');
    
    var file = new File(userDir + "\scripts\hello.js");
    print(file.exists());   /* true */
    print(new File(userDir + "\scripts").exists());   /* true */
    

    Read File to string
    Use LineNumberReader to read file to string:

    var System = Packages.java.lang.System;
    var File = Packages.java.io.File;
    var lineSeparator = System.getProperty('line.separator');
    var userDir = System.getProperty('user.dir');
    
    var reader = new Packages.java.io.LineNumberReader(
        new Packages.java.io.FileReader(userDir + "\scripts\hello.js"));
    var lines = [];
    while (line = reader.readLine()) {
        lines.push(line);
        lines.push(lineSeparator);
    }
    reader.close();
    print(lines.join(''));
    

    Write string to file
    Refer to BufferedWriter

    var System = Packages.java.lang.System;
    var userDir = System.getProperty('user.dir');
    
    var writer = new Packages.java.io.PrintWriter(
        new Packages.java.io.BufferedWriter(
    	    new Packages.java.io.FileWriter(userDir + "\scripts\output.txt")));
    writer.write("This is file content.rnIt's easy!");
    writer.flush();
    writer.close();
    

    Refer to JsDoc Toolkit

  • 相关阅读:
    java.util.concurrent.atomic 包详解
    SpringBoot RESTful 应用中的异常处理小结
    Spring 核心框架体系结构
    Java 的静态代理 动态代理(JDK和cglib)
    Spring5:@Autowired注解、@Resource注解和@Service注解
    offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别
    一个小技能
    在chrome console添加jQuery支持
    如和判断两个浮点数是否相等
    Object.create() vs new SomeFunction() in javascript
  • 原文地址:https://www.cnblogs.com/sanshi/p/1490156.html
Copyright © 2011-2022 走看看