首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JDK 1.6 內建 jrunscript:命令列 JavaScript 引擎實戰

     編輯:Java 相關知識

工具定位

jrunscript 是 JDK 6 內建的命令列腳本執行器,基於 Mozilla Rhino 引擎,支援 JavaScript (ECMAScript) 語法,並能直接存取 Java 類別與 API。適用於:快速驗證邏輯、批次處理、系統管理腳本、Java API 探索。

基本操作

$ jrunscript
js> var a = 2
js> print(a)
2
js> println(a)
2
js> alert(a)          // 錯誤:非瀏覽器環境無 alert
ReferenceError: "alert" is not defined
js> new javax.swing.JFrame("Test").setVisible(true)  // 可啟動 Swing GUI

Java 互操作關鍵點

  • 套件存取:Packages.java.util.ArrayList 或 java.util.ArrayList (Rhino 簡寫)
  • 靜態方法/欄位:java.lang.System.currentTimeMillis()
  • 建構物件:new java.io.File("test.txt")
  • 實現介面:new java.lang.Runnable() { run: function() { ... } }
  • 陣列操作:var arr = java.lang.reflect.Array.newInstance(java.lang.String, 3)

實用腳本範例

1. 檔案批次重命名

var dir = new java.io.File(".");
var files = dir.listFiles();
for each (var f in files) {
    if (f.getName().endsWith(".log")) {
        var newName = f.getName().replace(".log", "_" + java.time.LocalDate.now() + ".log");
        f.renameTo(new java.io.File(f.getParent(), newName));
    }
}

2. HTTP 請求測試

var url = new java.net.URL("https://httpbin.org/get");
var conn = url.openConnection();
conn.setRequestMethod("GET");
var reader = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream()));
var line, sb = new java.lang.StringBuilder();
while ((line = reader.readLine()) != null) sb.append(line).append("\n");
print(sb.toString());
reader.close();

3. 系統資訊收集

var rt = java.lang.Runtime.getRuntime();
println("Max Memory: " + rt.maxMemory() / 1024 / 1024 + " MB");
println("Free Memory: " + rt.freeMemory() / 1024 / 1024 + " MB");
println("Processors: " + rt.availableProcessors());
println("Java Version: " + java.lang.System.getProperty("java.version"));

進階用法

  • 執行外部 .js 檔:jrunscript script.js
  • 傳遞參數:jrunscript -e "var x=10" -f script.js (腳本中可用 arguments 陣列存取)
  • 指定引擎:jrunscript -l groovy (需 CLASSPATH 含 Groovy 引擎 JAR)
  • 互動模式歷史:支援上下鍵瀏覽歷史、Tab 補全

自製命令列應用參考

若需自製類 jrunscript 的互動式命令列工具,核心模式如下:

import java.io.*;
public class CustomShell {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter 'quit' to exit.");
        while (true) {
            System.out.print("Command: ");
            String cmd = in.readLine();
            if ("quit".equalsIgnoreCase(cmd)) break;
            System.out.println("Echo: " + cmd.toUpperCase());
            // 處理命令邏輯...
        }
    }
}

總結

jrunscript 將 JVM 變為強大的腳本執行環境,Java 開發者可用熟悉的語法直接操作 Java 生態系統,無需學習 Python/Perl 等外部語言,是系統管理、測試驗證與快速原型的利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved