2009-11-16 3 views
1

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

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

+0

Надеюсь, что так. Сколько пользователей вы знаете, которые загружают полный JDK на свой компьютер? – amischiefr

ответ

2

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" 

To Run (Требует JRE):

java RunScriptFile <myawesomescript.js> 

Надеется, что это помогает.

+0

Подождите минуту ... Я думал, что вам нужен рин-банк в вашем пути к классу. Вы говорите, что в Java включен движок Javascript? – Stroboskop

+0

Rhino входит, по крайней мере, в JDK, начиная с Java 6. Мой основной вопрос: включен ли он в JRE. Видимо, это так. –

+0

Это действительно позволяет мне исполнять мои js. К сожалению, я использую некоторые из встроенных команд jrunscript, таких как mv и exec. –

-1

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

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

+0

В вашем ответе не упоминается Javascript ... –

2

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

Этот файл, по-видимому, не в комплекте с JRE

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

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

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

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

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

Смежные вопросы