LoginSignup
7
6

More than 5 years have passed since last update.

Java8でRhinoエンジンでJavaScriptを実行する準備

Last updated at Posted at 2015-02-01

概要

Java8では標準でJavaScriptのエンジン(Nashorn)がついています。
1.7まで同梱されていたJavaScriptエンジンのRhinoは、標準ではついていません。
そこで、1.7までのエンジンを使いたい時の方法についてまとめておきます。

手順と注意点

Oracleのサイトに手順があるのですが、こちらが1箇所直すべき点があります。

具体的には、以下の部分がうまく動かないため

svn checkout https://java.net/projects/Scripting

以下のようにして取得します。

svn checkout https://svn.java.net/svn/scripting~svn

上記のURLは、
https://java.net/projects/Scripting
のページ中ほどの、"get source"リンクをクリックすることで知ることができます。

手順をまとめたスクリプト

上記サイトで示された手順をOSX 10.10上でスクリプト化したものを以下に置いておきます。
https://gist.github.com/hrkt/042c9764fe7e3d521133

このスクリプトの実行結果は以下のようになります。

hirokis-MBP:tmp hiroki$ ./build.sh 
-- downloading Rhino
Cloning into 'rhino'...
remote: Counting objects: 36658, done.
remote: Compressing objects: 100% (10550/10550), done.
remote: Total 36658 (delta 20638), reused 36407 (delta 20562)
Receiving objects: 100% (36658/36658), 12.79 MiB | 786.00 KiB/s, done.
Resolving deltas: 100% (20638/20638), done.
Checking connectivity... done.
Buildfile: /Users/hiroki/tmp/rhino/build.xml

properties:

init:
    [mkdir] Created dir: /Users/hiroki/tmp/rhino/build
    [mkdir] Created dir: /Users/hiroki/tmp/rhino/build/classes
    [mkdir] Created dir: /Users/hiroki/tmp/rhino/build/rhino1.8.0-SNAPSHOT

compile:

compile-most:
    [javac] Compiling 217 source files to /Users/hiroki/tmp/rhino/build/classes
    [javac] 警告: [options] ブートストラップ・クラスパスが-source 1.5と一緒に設定されていません
    [javac] 警告: [options] ソース値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] ターゲット値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
    [javac] 注意:/Users/hiroki/tmp/rhino/src/org/mozilla/javascript/commonjs/module/provider/SoftCachingModuleScriptProvider.javaの操作は、未チェックまたは安全ではありません。
    [javac] 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
    [javac] 警告4個
     [copy] Copying 2 files to /Users/hiroki/tmp/rhino/build/classes

compile-jdk15:
    [javac] Compiling 1 source file to /Users/hiroki/tmp/rhino/build/classes
    [javac] 警告: [options] ブートストラップ・クラスパスが-source 1.5と一緒に設定されていません
    [javac] 警告: [options] ソース値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] ターゲット値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
    [javac] 警告4個

compile:

properties:

compile:
    [javac] Compiling 29 source files to /Users/hiroki/tmp/rhino/build/classes
    [javac] 警告: [options] ブートストラップ・クラスパスが-source 1.5と一緒に設定されていません
    [javac] 警告: [options] ソース値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] ターゲット値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
    [javac] 注意:/Users/hiroki/tmp/rhino/toolsrc/org/mozilla/javascript/tools/debugger/SwingGui.javaの操作は、未チェックまたは安全ではありません。
    [javac] 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
    [javac] 警告4個
     [copy] Copying 1 file to /Users/hiroki/tmp/rhino/build/classes

xmlimplsrc-compile:
     [echo] Calling /Users/hiroki/tmp/rhino/xmlimplsrc/build.xml

compile:

e4x-compile:
    [javac] Compiling 11 source files to /Users/hiroki/tmp/rhino/build/classes
    [javac] 警告: [options] ブートストラップ・クラスパスが-source 1.5と一緒に設定されていません
    [javac] 警告: [options] ソース値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] ターゲット値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
    [javac] 警告4個

no-e4x-compile:

old-e4x:

xmlbeans-unzip:

xmlbeans-get:
    [mkdir] Created dir: /Users/hiroki/tmp/rhino/build/tmp-xbean
      [get] Getting: http://archive.apache.org/dist/xmlbeans/binaries/xmlbeans-2.5.0.zip
      [get] To: /Users/hiroki/tmp/rhino/build/tmp-xbean/xbean.zip
    [unzip] Expanding: /Users/hiroki/tmp/rhino/build/tmp-xbean/xbean.zip into /Users/hiroki/tmp/rhino/build/tmp-xbean
     [copy] Copying 1 file to /Users/hiroki/tmp/rhino/lib
     [copy] Copying 1 file to /Users/hiroki/tmp/rhino/lib
   [delete] Deleting directory /Users/hiroki/tmp/rhino/build/tmp-xbean

old-e4x-compile:
     [echo] Compiling XMLBeans E4X implementation using ./lib/xbean.jar and ./lib/jsr173_1.0_api.jar
    [javac] Compiling 11 source files to /Users/hiroki/tmp/rhino/build/classes
    [javac] 警告: [options] ブートストラップ・クラスパスが-source 1.5と一緒に設定されていません
    [javac] 警告: [options] ソース値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] ターゲット値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
    [javac] 注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
    [javac] 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
    [javac] 警告4個

no-old-e4x-compile:

compile-all:

compile:
    [javac] Compiling 3 source files to /Users/hiroki/tmp/rhino/build/classes
    [javac] 警告: [options] ブートストラップ・クラスパスが-source 1.5と一緒に設定されていません
    [javac] 警告: [options] ソース値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] ターゲット値1.5は廃止されていて、今後のリリースで削除される予定です
    [javac] 警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
    [javac] 警告4個

jar:
     [copy] Copying 1 file to /Users/hiroki/tmp/rhino/build/classes
      [jar] Building jar: /Users/hiroki/tmp/rhino/build/rhino1.8.0-SNAPSHOT/js.jar

BUILD SUCCESSFUL
Total time: 21 seconds
-- downloading JavaScript engine
A    javascript/lib
A    javascript/lib/js.jar
A    javascript/src
A    javascript/src/com
A    javascript/src/com/sun
A    javascript/src/com/sun/phobos
A    javascript/src/com/sun/phobos/script
A    javascript/src/com/sun/phobos/script/javascript
A    javascript/src/com/sun/phobos/script/javascript/RhinoScriptEngine.java
A    javascript/src/com/sun/phobos/script/javascript/ExternalScriptable.java
A    javascript/src/com/sun/phobos/script/javascript/EmbeddedRhinoScriptEngineFactory.java
A    javascript/src/com/sun/phobos/script/javascript/JSAdapter.java
A    javascript/src/com/sun/phobos/script/javascript/RhinoCompiledScript.java
A    javascript/src/com/sun/phobos/script/javascript/RhinoScriptEngineFactory.java
A    javascript/src/com/sun/phobos/script/javascript/EmbeddedRhinoScriptEngine.java
A    javascript/src/com/sun/phobos/script/util
A    javascript/src/com/sun/phobos/script/util/ScriptEngineFactoryBase.java
A    javascript/src/com/sun/phobos/script/util/BindingsImpl.java
A    javascript/src/com/sun/phobos/script/util/DeTagifier.java
A    javascript/src/com/sun/phobos/script/util/ExtendedScriptException.java
A    javascript/src/com/sun/phobos/script/util/ScriptEnginePool.java
A    javascript/src/com/sun/phobos/script/util/BindingsBase.java
A    javascript/src/com/sun/phobos/script/util/BindingsEntrySet.java
A    javascript/src/com/sun/phobos/script/util/InterfaceImplementor.java
A    javascript/src/META-INF
A    javascript/src/META-INF/toplevel.js
A    javascript/src/META-INF/services
A    javascript/src/META-INF/services/javax.script.ScriptEngineFactory
A    javascript/bin
A    javascript/bin/js.sh
A    javascript/bin/js.bat
A    javascript/README.TXT
A    javascript/make
A    javascript/make/build.xml
A    javascript/THIRDPARTYLICENSES.TXT
A    javascript/LICENSE.TXT
Checked out revision 236.
Buildfile: /Users/hiroki/tmp/javascript/make/build.xml

prepare:
    [mkdir] Created dir: /Users/hiroki/tmp/javascript/build/classes

compile:
    [javac] /Users/hiroki/tmp/javascript/make/build.xml:31: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 15 source files to /Users/hiroki/tmp/javascript/build/classes
    [javac] /Users/hiroki/tmp/javascript/src/com/sun/phobos/script/javascript/RhinoScriptEngine.java:337: 警告: [deprecation] ContextのcompileReader(Scriptable,Reader,String,int,Object)は非推奨になりました
    [javac]             Script scr = cx.compileReader(scope, preProcessScriptSource(script), filename, 1, null);
    [javac]                            ^
    [javac] 注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
    [javac] 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
    [javac] 警告1個
     [copy] Copying 1 file to /Users/hiroki/tmp/javascript/build/classes/META-INF/services
     [copy] Copying 1 file to /Users/hiroki/tmp/javascript/build/classes/META-INF

deploy:
      [jar] Building jar: /Users/hiroki/tmp/javascript/build/js-engine.jar

all:

BUILD SUCCESSFUL
Total time: 1 second
done.
-- write source
-- compile
-- execute
engine:RhinoScriptEngine
265

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6