JDK具有jrunscript可執行文件。 JRE是否具有可執行的必需jar文件,以免需要完整的JDK使用jrunscript?我可以從JRE運行jrunscript
換句話說,我可以通過用類名調用java可執行文件來運行jrunscript。
JDK具有jrunscript可執行文件。 JRE是否具有可執行的必需jar文件,以免需要完整的JDK使用jrunscript?我可以從JRE運行jrunscript
換句話說,我可以通過用類名調用java可執行文件來運行jrunscript。
JRunscript可執行文件不過是JavaScript文件。 我不知道你是否可以直接使用只有jre安裝的命令行,但是,你可以使用簡單的javaclass並從命令行運行javaclass。
import java.io.FileReader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class RunScriptFile {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
FileReader reader = new FileReader(args[0]);
engine.eval(reader);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
編譯(必填JDK):
javac RunScriptFile.java.
You'll get "RunScriptFile.class"
要運行(需要JRE):
java RunScriptFile <myawesomescript.js>
希望這有助於。
等一下...我以爲你需要在你的classpath中使用一個犀牛罐子。你是否說Java包含Javascript引擎? – Stroboskop 2009-11-16 18:47:15
Rhino至少包含在Java 6開始的JDK中。我的基本問題是它是否包含在JRE中。顯然情況就是這樣。 – 2009-11-16 19:12:32
這確實可以讓我執行我的js。不幸的是,我正在使用jrunscript的一些內置命令,如mv和exec。 – 2009-11-16 19:37:47
JRE包含了運行java程序所需的一切,包括任何標準庫jar文件。
JDK包含編寫Java程序所需的工具和庫。所以只要你不小心導入實現類(例如com.sum.*
中的東西),那麼你的java程序應該運行在任何正確版本的JRE上。
你的答案沒有提到Javascript ... – 2009-11-16 18:46:28
jrunscript駐留在com.sun.tools.script.shell.Main裏面tools.jar在我的JDK上。
該文件顯然不是與JRE
捆綁正如有人已經提到的Java代碼少量可以用來啓動您的腳本:
new ScriptEngineManager().getEngineByName("js").eval(jsCode)
特殊jrunscript功能,如ls (),mv(),echo()和read()不在JRE中。
這些函數實際上是在init腳本[see init.js from the openjdk repo]中定義的JavaScript函數。該腳本在您的代碼之前由jrunscript自動加載。
您可以在腳本中複製這些函數。請記住,openjdk是根據GPL授權的。
我希望如此。您知道有多少用戶在其計算機上下載了完整的JDK? – amischiefr 2009-11-16 18:13:57