問題タブ [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.

0 投票する
3 に答える
850 参照

java - JRuby と Java オブジェクト

以下のことが可能かどうか教えてください。

  • Java で特定のクラスのインスタンスを作成する
  • それをJRubyに渡して何かをする
  • Java で「変更された」バージョンを使い続ける

小さな実用的な例を提供できますか?

編集:埋め込みがこれを達成する最も簡単な方法であることがわかりました。詳細については、JRuby の埋め込みを参照してください。

0 投票する
2 に答える
7532 参照

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 ファイルを直接インポートすることはまったく可能ですか?

ありがとう!

0 投票する
1 に答える
3352 参照

java - JRuby でのオブジェクトのキャスト

JRuby からある Java オブジェクトを別の Java クラスに明示的にキャストする方法はありますか?

JRuby から SomeJavaClass#aMethod(MySuperClass)ではなく、起動できるようにしたい場合があります。SomeJavaClass#aMethod(MyClass)

Java からは、次のようにします。

しかし#cast、JRuby から同等のことを行うための ruby​​ メソッドやそのようなものは見当たりませんでした。

JRuby から Java オブジェクトをキャストするという質問には、一般的なケースに対する回答がないことに注意してください。

0 投票する
4 に答える
7121 参照

jruby - JrubyでカスタムJavaクラスファイルを使用する

最新バージョンのJruby(1.5.1)、Ruby 1.8.7、Java1.6.0_06を使用してカスタムJavaコードを実行しようとしています。クラスファイルとjarメソッドの両方を試しました。やってみると

また

両方のメソッドを試してみると、myClassやjarファイル内の他のファイルにアクセスできません。Javaクラスをインポートするためのネット上の他のバリエーションは、次のエラーにつながります。

StackOverFlowのソリューションも確認しましたが、同じ結果が得られます。これがより深いレベルでの問題になるのではないかと思います。

0 投票する
1 に答える
868 参照

java - jRubyとのJava相互運用に関する参照情報の最良のソース

JavaとのjRuby相互運用構文の最良のソースとして何を見つけましたか?昨日、クラスパスに追加することについて何かを見つけるのに私は永遠にかかりました。jruby.orgサイトはあまり役に立ちませんでした。他の人が使用している参照に興味があります。ありがとう。

0 投票する
1 に答える
3565 参照

jruby - JRuby on Rails プロジェクトで CLASSPATH に正しく追加するにはどうすればよいですか?

これを に追加して、CLASSPATH にいくつかの外部 jar を追加しましたconfig/application.rb

を使用してRailsを実行する場合、これは正常に機能しrails serverます。CLASSPATH からの jar がロードされます。ただし、実行時rakeはクラスパスが設定されていません。どうすれば設定できますか?特に、Jem をロードする前に設定する必要があります。これは、CLASSPATH に既に clojure.jar があることに依存する JRClj gem を使用しているためです。

(ああ、environment.rbにもコードを入れてみましたが、役に立ちませんでした)

「機能しない」とは、次のことを意味します。

0 投票する
1 に答える
219 参照

java - jruby をロードする実行可能 jar が、名前にスペースが含まれるフォルダー (Program files など) の下で実行されないのはなぜですか?

jruby をロードする実行可能な jar があります。インストーラーは、jar といくつかの事前にパッケージ化された jar ライブラリ (完全な jruby といくつかの gem を含む) をインストール場所にドロップします。

名前にスペースが含まれるフォルダーに jar がインストールされている Windows を除いて、すべて正常に動作します。Jruby は、jar パッケージされた gem の 1 つから単純な「require」に遭遇すると失敗します (それが重要な場合は、statemachine gem の「require singleton」)。

これはそれほど問題ではありませんでしたが、プログラム ファイルの下から実行するには jar が必要です。誰かがこれを解決したことを願っています:)

スタックトレース:

0 投票する
0 に答える
103 参照

jruby - JRuby で例外をスローする Java メソッド シグネチャをどのように生成しますか? (つまり、org.quartz.Job などのインターフェースを実装するため)

次のコードがあるとします。

ランニング

executeメソッドを生成するときに「org.quartz.JobExecutionExceptionをスローする」が無視されるように見えるため、抽象クラスを生成します。

JRubyでこれを行う方法はありますか?

0 投票する
1 に答える
586 参照

ruby - JavaからJRuby、Resqueへ

同じTomcatでJavaWARファイルとJRubyWARファイルを実行するハイブリッドWebアプリケーションがあります。

(JRuby)Resqueをジョブキューとして使用することにしました。ジョブをエンキューするための呼び出しは次のようになります。

ここで、FooWorkerは、JRuby側で定義および使用される(およびJRuby WARファイルに含まれる)ワーカークラスであり、キューからジョブを処理するときにJRubyResquerakeタスクによって呼び出されます。

FooWorkerJavaコードに、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クラスの両方にアクセスできるようにするには、何をする必要がありますか?

0 投票する
1 に答える
658 参照

java - --javaフラグがある場合とない場合のjrubyAOTクラスの違い

を使用してrubyファイルをjavaクラスにコンパイルすると、justとwith (javaファイルを生成するため)とjustでjrubycコンパイルすると異なる出力が得られます。なんで?jrubycjrubyc --javajavac

例:

最初の方法:

2番目の方法:

生成されたクラスはまったく同じであると思いますが、そうではありません。隠れて何をしているのjrubyc

ありがとう!