Могу ли я запустить jrunscript из JRE - PullRequest
2 голосов
/ 16 ноября 2009

JDK имеет исполняемые файлы jrunscript. Имеет ли JRE необходимые jar-файлы, которые можно выполнить, чтобы не требовать полного JDK для использования jrunscript?

Другими словами, могу ли я запустить jrunscript, вызвав исполняемый файл java с именем класса.

Ответы [ 3 ]

3 голосов
/ 16 ноября 2009

Исполняемые файлы 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>

Надеюсь, это поможет.

2 голосов
/ 09 декабря 2009

jrunscript находится в com.sun.tools.script.shell.Main внутри tools.jar на моем JDK.

Этот файл, очевидно, не связан с JRE

Как уже упоминалось, для запуска скрипта можно использовать небольшое количество кода Java:

new ScriptEngineManager().getEngineByName("js").eval(jsCode)

Специальные функции jrunscript, такие как ls (), mv (), echo () и read (), отсутствуют в JRE.

Эти функции фактически являются функциями JavaScript, определенными в скрипте инициализации [см. Init.js из репозитория openjdk] . Этот скрипт автоматически загружается jrunscript перед вашим кодом.

Вы можете скопировать эти функции в свой скрипт. Просто помните, что openjdk распространяется по лицензии GPL.

0 голосов
/ 16 ноября 2009

JRE содержит все необходимое для запуска java-программ, включая любые стандартные jar-файлы библиотеки.

JDK содержит инструменты и библиотеки, необходимые для написания программ на Java. Так что, если вы случайно не импортируете классы реализации (например, вещи в com.sum.*), тогда ваша java-программа должна запускаться на любом JRE правильной версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...