使用: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。
我仍然很好奇我是怎么出错的。
答案 0 :(得分:0)
你刚刚做了一些完全不同的事情(注意正确的套管):
java_import java.awt.Image.MemoryImageSource
首先解决
java.awt.Image
在你的情况下(不幸的是)存在并尝试在Java类上调用MemoryImageSource
方法
你所追求的是java_import java.awt.image.MemoryImageSource
因此JRuby认为java.awt.image
是一个包并在其下面寻找一个类