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
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)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));
}
}
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();
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"));
jrunscript script.jsjrunscript -e "var x=10" -f script.js (腳本中可用 arguments 陣列存取)jrunscript -l groovy (需 CLASSPATH 含 Groovy 引擎 JAR)若需自製類 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 等外部語言,是系統管理、測試驗證與快速原型的利器。