public interface ScriptEngineFactory
ScriptEngineFactory
は、ScriptEngines
の説明およびインスタンス化に使用されます。 ScriptEngine
を実装する各クラスには、エンジン・クラスを記述するメタデータを公開するための対応するファクトリが存在します。 ScriptEngineManager
は、JARファイルの仕様に記載されたサービス・プロバイダ・メカニズムを使用して、現在のClassLoaderで使用可能なすべてのScriptEngineFactories
のインスタンスを取得します。 修飾子と型 | メソッド | 説明 |
---|---|---|
String |
getEngineName() |
ScriptEngine の完全な名前を返します。 |
String |
getEngineVersion() |
ScriptEngine のバージョンを返します。 |
List<String> |
getExtensions() |
ファイル名拡張子の不変のリストを返します。通常、ファイル名拡張子は、この
ScriptEngine によってサポートされる言語で記述されたスクリプトを識別します。 |
String |
getLanguageName() |
この
ScriptEngine がサポートするスクリプト言語の名前を返します。 |
String |
getLanguageVersion() |
この
ScriptEngine がサポートするスクリプト言語のバージョンを返します。 |
String |
getMethodCallSyntax(String obj, String m, String... args) |
サポートされるスクリプト言語の構文を使用してJavaオブジェクトのメソッドを呼び出すために使用可能なStringを返します。
|
List<String> |
getMimeTypes() |
エンジンが実行できるスクリプトに関連付けられた、MimeTypeの不変のリストを返します。
|
List<String> |
getNames() |
ScriptEngine の短い名前の不変のリストを返します。短い名前は、ScriptEngineManager によるScriptEngine の識別に使用可能です。 |
String |
getOutputStatement(String toDisplay) |
サポートされるスクリプト言語の構文を使用して、指定されたStringを表示するための文として使用可能なStringを返します。
|
Object |
getParameter(String key) |
属性の値を返します。この値は実装に固有の意味を持つ場合もあります。
|
String |
getProgram(String... statements) |
指定された文を含む、スクリプト言語の有効な実行可能プログラムを返します。
|
ScriptEngine |
getScriptEngine() |
この
ScriptEngineFactory に関連付けられたScriptEngine のインスタンスを返します。 |
String getEngineName()
ScriptEngine
の完全な名前を返します。 たとえば、Mozilla Rhino Javascriptエンジンに基づいた実装はRhino Mozilla Javascript Engineを返します。 String getEngineVersion()
ScriptEngine
のバージョンを返します。ScriptEngine
実装のバージョン。List<String> getExtensions()
ScriptEngine
によってサポートされる言語で記述されたスクリプトを識別します。 この配列は、ScriptEngineManager
がgetEngineByExtension
メソッドを実装するために使用します。 List<String> getMimeTypes()
ScriptEngineManager
がgetEngineByMimetype
メソッドを実装するために使用します。 List<String> getNames()
ScriptEngine
の短い名前の不変のリストを返します。短い名前は、ScriptEngineManager
によるScriptEngine
の識別に使用可能です。 たとえば、Mozilla Rhino Javascriptエンジンに基づいた実装は{"javascript", "rhino"}を含むリストを返します。 String getLanguageName()
ScriptEngine
がサポートするスクリプト言語の名前を返します。String getLanguageVersion()
ScriptEngine
がサポートするスクリプト言語のバージョンを返します。Object getParameter(String key)
最初の4つのキーについては、これらのキーの値はそれぞれgetEngineName
、getEngineVersion
、getLanguageName
、getLanguageVersion
によって返される文字列です。 NAMEについては、getNames
によって返される文字列のいずれかが返されます。
予約済キーTHREADING
も定義されています。このキーの値は、スクリプトの並行実行と状態の管理に関するエンジンの動作を記述します。 THREADING
キーの値は次のとおりです。
null
- エンジン実装はスレッド・セーフでないため、複数のスレッド上で同時にスクリプトを実行するためには使用できません。
"MULTITHREADED"
- エンジン実装は内部的にスレッドセーフなので複数のスクリプトを同時に実行できますが、あるスレッド上でのスクリプト実行の効果が別のスレッド上のスクリプトから見える可能性があります。
「THREAD-ISOLATED」
- エンジン実装は「MULTITHREADED」の要件を満たし、さらに異なるスレッド上で実行されているスクリプト内のシンボルに対して独立した値を維持します。
「STATELESS」
- 実装は
「THREAD-ISOLATED」
の要件を満たします。 また、スクリプトの実行によって、ScriptEngine
のエンジン・スコープであるBindings
内のマッピングが変更されることはありません。 特に、Bindings
内のキーおよび関連付けられた値は、スクリプトの実行前後で同じです。
key
- パラメータの名前null
。 String getMethodCallSyntax(String obj, String m, String... args)
public String getMethodCallSyntax(String obj,
String m, String... args) {
String ret = obj;
ret += "." + m + "(";
for (int i = 0; i < args.length; i++) {
ret += args[i];
if (i < args.length - 1) {
ret += ",";
}
}
ret += ")";
return ret;
}
obj
- 呼び出されるメソッドを持つオブジェクトを表す名前。 この名前は、ScriptEngine
のput
メソッド、ENGINE_SCOPE
Bindings
のput
メソッド、ScriptContext
のsetAttribute
メソッドを使用してバインディングを作成するときに使用します。 スクリプトで使用される識別子は、指定された識別子の装飾された形式とすることもできる。 m
- 呼び出されるメソッドの名前。args
- メソッドの呼出しで指定される引数の名前。String getOutputStatement(String toDisplay)
public String getOutputStatement(String toDisplay) {
return "print(" + toDisplay + ")";
}
toDisplay
- 返される文によって表示されるString。String getProgram(String... statements)
public String getProgram(String... statements) {
String retval = "<?\n";
int len = statements.length;
for (int i = 0; i < len; i++) {
retval += statements[i] + ";\n";
}
return retval += "?>";
}
statements
- 実行される文。 getMethodCallSyntax
およびgetOutputStatement
メソッドの呼出しの戻り値でもよい。 ScriptEngine getScriptEngine()
ScriptEngineFactory
に関連付けられたScriptEngine
のインスタンスを返します。 通常、新しいScriptEngineが返されますが、実装でエンジンをプール、共有または再利用することもできます。 ScriptEngine
の新しいインスタンス。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。