JRuby在awt.Image中没有MemoryImageSource吗?

时间:2015-05-01 12:09:14

标签: java jruby memoryimagesource

使用: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 

然后我得到"未定义的方法`MemoryImageSource' for Java :: JavaAwt :: Image:Class &#34 ;. 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)。目前,它是一个不错的解决方法,因为我的java返回了我在没有Ruby抱怨的情况下从MemoryImageSource创建的Image。

我仍然很好奇我是怎么出错的。

1 个答案:

答案 0 :(得分:0)

你刚刚做了一些完全不同的事情(注意正确的套管):

java_import java.awt.Image.MemoryImageSource首先解决 java.awt.Image在你的情况下(不幸的是)存在并尝试在Java类上调用MemoryImageSource方法

你所追求的是java_import java.awt.image.MemoryImageSource因此JRuby认为java.awt.image是一个包并在其下面寻找一个类