問題タブ [jruby-java-interop]
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 - JRuby と Java オブジェクト
以下のことが可能かどうか教えてください。
- Java で特定のクラスのインスタンスを作成する
- それをJRubyに渡して何かをする
- Java で「変更された」バージョンを使い続ける
小さな実用的な例を提供できますか?
編集:埋め込みがこれを達成する最も簡単な方法であることがわかりました。詳細については、JRuby の埋め込みを参照してください。
jruby - Java クラス ファイルを JRuby にインポートできますか?
ドキュメントは、Java クラスを JRuby にインポートするには、それらが JAR ファイルに含まれている必要があることを示唆しているようです。
「JRuby から jar ファイル内のリソースを使用するには、jar ファイルがクラスパス上にある必要があります。または、require メソッドを使用して使用できるようにする必要があります」( http://wiki.jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby )
.class ファイルを直接インポートすることはまったく可能ですか?
ありがとう!
java - JRuby でのオブジェクトのキャスト
JRuby からある Java オブジェクトを別の Java クラスに明示的にキャストする方法はありますか?
JRuby から SomeJavaClass#aMethod(MySuperClass)
ではなく、起動できるようにしたい場合があります。SomeJavaClass#aMethod(MyClass)
Java からは、次のようにします。
しかし#cast
、JRuby から同等のことを行うための ruby メソッドやそのようなものは見当たりませんでした。
JRuby から Java オブジェクトをキャストするという質問には、一般的なケースに対する回答がないことに注意してください。
jruby - JrubyでカスタムJavaクラスファイルを使用する
最新バージョンのJruby(1.5.1)、Ruby 1.8.7、Java1.6.0_06を使用してカスタムJavaコードを実行しようとしています。クラスファイルとjarメソッドの両方を試しました。やってみると
また
両方のメソッドを試してみると、myClassやjarファイル内の他のファイルにアクセスできません。Javaクラスをインポートするためのネット上の他のバリエーションは、次のエラーにつながります。
StackOverFlowのソリューションも確認しましたが、同じ結果が得られます。これがより深いレベルでの問題になるのではないかと思います。
java - jRubyとのJava相互運用に関する参照情報の最良のソース
JavaとのjRuby相互運用構文の最良のソースとして何を見つけましたか?昨日、クラスパスに追加することについて何かを見つけるのに私は永遠にかかりました。jruby.orgサイトはあまり役に立ちませんでした。他の人が使用している参照に興味があります。ありがとう。
jruby - JRuby on Rails プロジェクトで CLASSPATH に正しく追加するにはどうすればよいですか?
これを に追加して、CLASSPATH にいくつかの外部 jar を追加しましたconfig/application.rb
。
を使用してRailsを実行する場合、これは正常に機能しrails server
ます。CLASSPATH からの jar がロードされます。ただし、実行時rake
はクラスパスが設定されていません。どうすれば設定できますか?特に、Jem をロードする前に設定する必要があります。これは、CLASSPATH に既に clojure.jar があることに依存する JRClj gem を使用しているためです。
(ああ、environment.rbにもコードを入れてみましたが、役に立ちませんでした)
「機能しない」とは、次のことを意味します。
java - jruby をロードする実行可能 jar が、名前にスペースが含まれるフォルダー (Program files など) の下で実行されないのはなぜですか?
jruby をロードする実行可能な jar があります。インストーラーは、jar といくつかの事前にパッケージ化された jar ライブラリ (完全な jruby といくつかの gem を含む) をインストール場所にドロップします。
名前にスペースが含まれるフォルダーに jar がインストールされている Windows を除いて、すべて正常に動作します。Jruby は、jar パッケージされた gem の 1 つから単純な「require」に遭遇すると失敗します (それが重要な場合は、statemachine gem の「require singleton」)。
これはそれほど問題ではありませんでしたが、プログラム ファイルの下から実行するには jar が必要です。誰かがこれを解決したことを願っています:)
スタックトレース:
jruby - JRuby で例外をスローする Java メソッド シグネチャをどのように生成しますか? (つまり、org.quartz.Job などのインターフェースを実装するため)
次のコードがあるとします。
ランニング
executeメソッドを生成するときに「org.quartz.JobExecutionExceptionをスローする」が無視されるように見えるため、抽象クラスを生成します。
JRubyでこれを行う方法はありますか?
ruby - JavaからJRuby、Resqueへ
同じTomcatでJavaWARファイルとJRubyWARファイルを実行するハイブリッドWebアプリケーションがあります。
(JRuby)Resqueをジョブキューとして使用することにしました。ジョブをエンキューするための呼び出しは次のようになります。
ここで、FooWorkerは、JRuby側で定義および使用される(およびJRuby WARファイルに含まれる)ワーカークラスであり、キューからジョブを処理するときにJRubyResquerakeタスクによって呼び出されます。
FooWorker
Javaコードに、JRubyクラスで処理されるResqueキューにタスクをエンキューする機能を提供したいと思います。
https://github.com/tc/call-jruby-from-java-exampleでTommyChengのコードを確認しました。
私のコードは次のようになると思います。
私FooWorker
のクラスはRailsアプリの展開されたwarファイルディレクトリにあり、ファイルはapp/workers/foo_worker.rb
FooWorker
コードを正しくコンパイルするために、JRubyコンパイラがJRubyクラスとResque JRubyクラスの両方にアクセスできるようにするには、何をする必要がありますか?
java - --javaフラグがある場合とない場合のjrubyAOTクラスの違い
を使用してrubyファイルをjavaクラスにコンパイルすると、justとwith (javaファイルを生成するため)とjustでjrubyc
コンパイルすると異なる出力が得られます。なんで?jrubyc
jrubyc --java
javac
例:
最初の方法:
2番目の方法:
生成されたクラスはまったく同じであると思いますが、そうではありません。隠れて何をしているのjrubyc
?
ありがとう!