[Rhino] rhino1.7.7.zipのjs.jarでRhino Shellを起動すると最初にnullが出力される
投稿日: 2015/12/13 10:09:27
Rhino1.7.7のリリースページに、rhino-1.7.7.jarとrhino1.7.7.zipが公開されています。rhino1.7.7.zipに含まれているjs.jarはrhino-1.7.7.jarと基本的に同じものですが、js.jarに含まれているMANIFEST.MFの記述に若干問題があり、Rhino Shellを起動すると最初にRhinoのバージョンではなくnullが出力されます。
気になる場合は、代わりにrhino-1.7.7.jarを使いましょう。
詳細: Rhinoのバージョンを返すContext.getImplementationVersion()メソッドは、MANIFEST.MFのImplementation-Titleが"Mozilla Rhino"と一致する場合はバージョンを、そうでない場合はnullを返します。ところがrhino1.7.7.zipのjs.jarに含まれているMANIFEST.MFはImplementation-Titleが"Mozilla Rhino 1.7.7"なので、結果としてnullが出力されます。rhino-1.7.7.jarはMANIFEST.MFのImplementation-Titleが"Mozilla Rhino"なので大丈夫です。
1-1. rhino1.7.7.zipのjs.jarでRhino Shellを起動するとnullが出力される
>echo "quit();" | java -jar js.jar
null
js> quit();
js>
1-2. rhino-1.7.7.jarでRhino Shellを起動するとRhinoのバージョンが出力される
>echo "quit();" | java -jar rhino-1.7.7.jar
Rhino 1.7.7 2015 06 17
js> quit();
js>
2-1. rhino1.7.7.zipのjs.jarに含まれるMANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_45-b18 (Oracle Corporation)
Main-Class: org.mozilla.javascript.tools.shell.Main
Implementation-Version: 1.7.7-SNAPSHOT
Implementation-Title: Mozilla Rhino 1.7.7
Implementation-Vendor: Mozilla Foundation
Implementation-URL: http://www.mozilla.org/rhino
2-2. rhino-1.7.7.jarに含まれるMANIFEST.MF
Manifest-Version: 1.0
Main-Class: org.mozilla.javascript.tools.shell.Main
Implementation-Version: 1.7.7
Implementation-Title: Mozilla Rhino
Implementation-Vendor: Mozilla Foundation
Implementation-URL: http://www.mozilla.org/rhino
Built-Date: 2015-06-17
Built-Time: 10:35:00