使用: jruby 1.7.4 (1.9.3p392) 2013-05-16 2390d3b on Java HotSpot(TM) Server VM 1.7.0_76-b13 +indy [linux-i386]
java.awt.Image にあるメモリ イメージ ソースを使用しようとすると、「初期化されていない定数」エラーが発生します。私が明示的に行う場合
import java.awt.Image.MemoryImageSource
次に、「Java::JavaAwt::Image:Class の未定義メソッド `MemoryImageSource'」を取得します。JRuby は何らかの理由でこのクラスをサポートしていないのでしょうか? それとも、MemoryImageSource が 1.7 にはないのでしょうか。
編集:簡単なJavaテストを書きました:
import java.awt.image.MemoryImageSource;
class HelloWorldApp {
public static void main(String[] args) {
MemoryImageSource ms;
System.out.println("Hello World! I can find MemoryImageSource"); // Display the string.
}
}
また、MemoryImageSource を見つけるのに問題はないので、JRuby に問題があるようです。
java -version
java version "1.7.0_76"
Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
Java HotSpot(TM) Server VM (build 24.76-b04, mixed mode)
編集:
他の Java の側面が JRuby で正常に機能するかどうかは明らかではないことに気付きました (たとえば、JFrame を作成し、JPanel を使用してその上に小さな四角形を描くことができます)。
編集:
おそらく問題は、MemoryImageSource をインポートしようとしている方法にありますか? MemoryImageSource を使用する Java クラスを作成すると、JRuby から問題なくアクセスできます (MemoryImageSource を直接アクセスすることはできません)。今のところ、Ruby に文句を言うことなく、私の Java が MemoryImageSource から作成したイメージを返すので、これはまともな回避策です。
しかし、私はどのように間違っていたのか、まだ興味があります。