私はJRubyを使い始めたばかりで、スクリプトとして保存された次のコードをテストすると
include java_import
frame = javax.swing.JFrame.new
frame.getContentPane.add javax.swing.JLabel.new('Hello, World!')
frame.setDefaultCloseOperation javax.swing.JFrame::EXIT_ON_CLOSE
frame.pack
frame.set_visible true
次のエラーが表示されます
Switch to inspect mode.
irb(main):001:0> include java_import
TypeError: wrong argument type Array (expected Module)
from org/jruby/RubyModule.java:2068:in `include'
from (irb):1:in `evaluate'
from org/jruby/RubyKernel.java:1066:in `eval'
from org/jruby/RubyKernel.java:1392:in `loop'
from org/jruby/RubyKernel.java:1174:in `catch'
from org/jruby/RubyKernel.java:1174:in `catch'
from C:\jruby-1.7.2\/bin/jirb_swing:54:in `(root)'
irb(main):002:0>
誰かが私が間違っていることを特定するのを手伝ってくれますか? jruby-1.7.2 をインストールし (C:\jruby-1.7.2)、システム変数の PATH に追加し、Windows 7 で実行しています。コマンド プロンプトで、jruby と Java のバージョンを正しくテストできます。
また、jruby(1.9.3).exe を介して jirb_swing を起動し、プロンプトで次のように入力しました。
irb(main):001:0> include java_import
同じエラーメッセージが表示されます
アップデート
こんにちは、みんな
JRuby と Java のインターネット ページをさらに検索した結果、問題は解決しました。
まず、JRuby から Java を呼び出す際にうまくいった 2 つの方法:
- 「include Java」を使用する (スクリプト ファイルに引用符を付けず、大文字の J を使用)
- "require 'java'" を使用する (" 引用符なしで、java を一重引用符で囲み、小文字の j で始まることに注意してください)
私が使用していた「java_import」は、GitHub の詳細ドキュメント ( https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby )を読んだときに不注意だった私のエラーでした。
「include」ステートメントと「require」ステートメントの使用における違いまたはその欠如についてさらに調査し、投稿します。本当の初心者として、これは本当に目を見張るものでした
スリ