java中JDK的jrunscript.exe技巧

    作者:课课家教育更新于: 2016-02-29 19:41:30

    大神带你学编程,欢迎选课

      今天大家讨论说发现 JDk 1.6 安装目录下有个 jrunscript.exe, 不知道是干啥的, 在 DOS 下运行一下看看:

    java中JDK的jrunscript.exe技巧_java开发_java语言_课课家

      D:\\jee5training\\jdk1.6.0\\bin>jrunscript.exe

      js> var a = 2;

      js> print(a)

      2js> println(a)

      2

      js>

      js> alert(a)

      script error: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "al

      ert" is not defined. (#1) in at line number 1

      js> new JFrame("a").show();

      script error: sun.org.mozilla.Javascript.internal.EcmaError: ReferenceError: "JF

      rame" is not defined. (#1) in at line number 1

      js> new javax.swing.JFrame("a").show();

      原来是 js 解释器, 注意不在浏览器中运行, 所以 alert 这样的方法是不能用的。 但是可以调用 Java 类, 例如 GUI 库。

      这样的 DOS 命令解释器应用我们也可以用 Java 来做, 例如下面的代码就实现了一个提示 Commmand: 的命令行应用:

      import java.io.*;

      public class CustomCMD

      {

      public static void main(String[] args) throws IOException

      {

      BufferedReader cmdIn = new BufferedReader(new InputStreamReader(System.in));

      System.out.println("Enter \\"quit\\" to quit this program.");

      for(;;) {

      System.out.print("Command:");

      String cmd = cmdIn.readLine();

      if(cmd.equalsIgnoreCase("Quit")) break;// Quit the program

      System.out.println("Your input: " + cmd.toUpperCase());

      // Process the command

      }

      }

      }

      其他的一些命令行小代码:

      命令行形式下在同一行上反复输出文本使用 System.out.print("…… \\r");// \\r表示回车, \\n表示换行

      分析带选项的命令行输入

      如: -S -P -M

      public static void main(String args[]) {

      // Parse the command line options

      for(int i = 0; i < args.length - 1; i++) {

      if(args[i].equalsIgnoreCase("-S")) {

      String server = args[i + 1];

      }else if(args[i].equalsIgnoreCase("-P")) {

      String port = args[i + 1];

      }

      ...// Other parameters

      }

      相关资料: Java 6 的默认 JS 脚本引擎是 rhino, 是 Mozilla 开源的 JS 引擎, 基于 Java, 我们可以下载其单独的包用在 JDK 1.4 或者 1.5. 这样应用可以将一些业务逻辑代码用js实现.

课课家教育

未登录