Scriptを呼び出し、そのScriptからJavaのメソッドを呼び出すサンプルプログラムです。処理の手順を図にすると、下のような感じになります。製作しているフリーソフトの洋裁CADにマクロ機能が欲しかったのです。洋裁CADはJavaで書いているのですが、いろいろ調べてみるとJavaScriptをJavaから呼び出せると知ったので、JavaScriptをマクロとして使ってみようと考えました。CADなので線を描くのですが、複雑な数値計算を入力する事が苦手でした。30°)くらいになるともうお手上げ。JavaScriptを使えば、このわずらわしさを解決できます。それよりも効果が期待できるのは、パターンのライブラリ化です。袖とか襟などの決まりきった部品はマクロで記述して個別にに保管しておき、必要に応じて呼び出します。呼び出し時に必要な情報(袖であれば袖ぐり長さや袖山高さ)を渡し、呼び出した身頃に合致したサイズ形状で描画させることができます。ループ処理は洋裁CADの仕様にあるのですが、分岐も時々欲しいと感じるときがあります。自動製図させることも可能です。JavaScriptエンジンJavaの中でJavaScriptを動かすには、JavaScriptを読んで解釈するJavaScriptエンジンが必要になります。Java7まではJavaScriptスクリプティングエンジンとしてRhinoが同梱されていましたが、Java8からはNashornが同梱されるようになりました。普通ならNashornを使うべきところですが、このNashorn、Java11からは非推奨となり、いずれ廃止されてしまうようです。Nashornの後継としてGraalJSがあるそうですが、まだあまり情報がないので、RinoとNashornのサンプルプログラムを作ってみました。Nashorn用サンプルプログラムまずはNashorn用のJavaプログラム。JavaScriptを記述したファイル「TestNashorn.js」を読み込んで実行します。IO試験オブジェクト「iotest」を作り、JavaScriptに渡しています。JavaScriptの中でiotestに格納された数値を変更する作業をしています。);広告Rhino用サンプルプログラムRhino用のJavaプログラム。JavaScriptを記述したファイル「TestRhino.js」を読み込んで実行します。IO試験オブジェクト「iotest」を作り、JavaScriptに渡しています。JavaScriptの中でiotestに格納された数値を変更する作業をしています。Itoこのサイトの文章・写真の無断転載を禁じます。