問題タブ [jsr223]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - サンドボックス JSR-223
JSR-223 をサンドボックス化しようとしています。具体的には、どのスクリプトも自分のクラスにアクセスできないようにしたいと考えています。(Rhino は ClassShutter でそれを行うことができると聞きましたが、私は一般的に、つまり JSR-223 のすべてのスクリプト エンジンに対してそれを行いたいと考えています)。
私は最初に、アクセス許可をまったく渡さずAccessController.doPrivileged
に、ソリューションを使用しようとしました。ほとんどのパーミッションで機能しますが、スクリプトは引き続きすべてのパブリック クラスにアクセスできます (「パッケージ アクセス」パーミッションを無視しているようです ...?)。
私はこれを見つけました。私の質問は、スクリプト エンジンにカスタム ClassLoader をインストールするにはどうすればよいですか? (または、必要に応じて ClassLoader をグローバルに置き換えるにはどうすればよいですか?)
java - Rhino-JavaScript 配列を Java-Array に変換する方法
私は次のものを持っています:
タイプがsun.org.mozilla.javascript.internal.NativeArrayの結果オブジェクトを対応するJava配列に変換するにはどうすればよいですか? これが行われている実際のコードサンプルを誰かに見せてもらえますか? 文字列および整数配列で機能するはずです。さらに、rhino エンジンと Java の間の他のデータ型変換を探す場所を知っておくと便利です。
ところで、私はこのページを知っていますが、実際に動作するコード サンプルを探しています。
java - JSR-223 を使用して Jython スクリプトからデータを取得する
Jython 2.5.1 を JSR-223 (つまり、javax.script パッケージ) で使用しており、Python スクリプトの最後の行が返されることを期待しています。たとえば、このスクリプトを評価した後:
35 を返す必要がありますが、代わりに null が返されます。一方、それはこの他のテストで動作します:
私は何を間違っていますか?
Javaコードは次のとおりです。
PS: JRuby、Groovy、Rhino で問題なく動作します。つまり、常に最後の行が返されます。
前もって感謝します。
java - org.apache.bsf.util.BSFEngineImplが見つからないため、JRubyEngineをロードできません
JRubyEngine
カスタムアプリケーションでJRubyを使用しようとしていますが、オブジェクトを読み込めないようです。私のクラスは機能的にこれに似ているように見えます:
しかし、これは苦情でコンパイルに失敗します:
誰かが私がこのクラスをどこから得ることができるかについて何か洞察を持っていますか?または、JRubyEngineオブジェクトをインスタンス化するためのより良い方法がある場合。
java - 交換Java Rhino(JSR223)で実際のファイル名を使用
私のコードでは、すべてのスクリプトが.jsファイルに含まれています。スクリプトの1つにエラーが含まれていると、次のようになります。
javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:"nonexistant"が定義されていません。(<不明なソース>#5)<不明なソース>の行番号5
私を悩ませているのは<不明なソース>です。1つのScriptContextに複数のファイルが含まれているため、エラーを追跡するのが難しい場合があります。それもひどいように見えます。
<Unknown Source>を実際のファイル名に置き換える方法はありますか?私が見ているメソッドはどれもFileオブジェクトの受け渡しをサポートしていないので、ここでは本当に混乱しています。
java - jrunscriptがクラスパスを尊重しないのはなぜですか?
Java 6に含まれているRhinoを使用してJavaScriptからJDBCアクセスを実行しようとしていますが、使用したいDriverManager
検索を行うことができません。Driver
これらの2つの例は同等である必要があります。
Java:
JavaScript:
...しかし、それらを実行すると、次の動作が発生します。
Java:
それは素晴らしいことです、それはなんとかドライバーをロードしてサーバーを解決しようとしました。
JavaScript:
なぜクラスが見つからないのですか?プレフィックスありとなし、プレフィックスありとなしimportPackage()
で試してみました。コメントアウトすると、適切なドライバーが見つかりません。importClass()
Packages
forName
DriverManager
java - Java 1.5 での JSR223 実装に制限はありますか?
スクリプト言語用の Java API (JSR223) は Java 1.6 に標準で付属しており、ここから Java 1.5 用に個別にダウンロードできます。
私の質問は次のとおりです。1.5 で個別のダウンロードを使用する場合と 1.6 でネイティブ サポートを使用する場合に注意すべき制限や相違点はありますか?
java - ユーザー入力式の解析 (eval)
皆さん、こんにちは。
ユーザーが特定のデータに対してメソッドを呼び出せるようにする方法を見つけようとしています。
定義済みの一連の機能を提供したいと思います。
- 移動平均、moving_ave(x,5) .. x の 5 日間の移動平均になります。
- 3*x+y....など...
したがって、基本的に、ユーザーにさまざまなデータ系列(x、y、z....) と一連の関数moving_ave、+ - / * .... を提供し、簡単な数式を記述できるようにする必要があります (私が提供する機能)。
これはどのように行うことができますか?
これをApp Engine for Javaにデプロイします。
だから私はJSR-223について知りました...しかし、それが適切かどうかわかりませんか? 私は評価機能を使用できると考えています。
ありがとう、
groovy - JSR223 とその不可解な例外
JSR 223 からより適切なエラー メッセージを取得する方法はありますか? これを使用して Groovy スクリプトを実行しようとしていますが、実行に問題がある場合はいつでも、本当に不可解な例外が発生します。次に例を示します。
java - JSR223RhinoによってスローされたScriptExceptionの合理的な処理
私は、他の点では非常に便利なJSR223スクリプト環境とは何かという汚い小さな秘密に出くわし始めています。
Java 6 SEに同梱されているRhinoの組み込みバージョンを使用しており、JSR223などを介してアクセスしていScriptingEngine
ます。
Javascript環境にエクスポートしたJavaオブジェクトが原因で例外が発生した場合、それは私の実際の例外(例など)ScriptingException
をラップするものです。sun.org.mozilla.javascript.internal.WrappedException
UnsupportedOperationException
getFileName()のScriptingException
場合はnullを返し、getLineNumber()の場合は-1を返します。しかし、メッセージとデバッガーを見ると、WrappedException
ファイル名と行番号が正しいので、ScriptingExceptionのgetterメソッドを介してメッセージを公開していません。
素晴らしい。今、私は何をしますか?とにかくパブリッククラスではないsun.org.mozilla.javascript.internal.wrappedExceptionをどのように使用するのかわかりません。