如何将Sun的JAI-ImageIO与Eclipse BIRT插件一起使用?

时间:2009-08-05 18:46:48

标签: eclipse exception eclipse-plugin birt runtime-error

我正在尝试为Eclipse BIRT报告编写扩展(插件)。它涉及根据数据库条目从文件中提取图像并显示它们。

我正在使用Sun的JAI-ImageIO访问TIFF文件数据并转换为PNG以在报告中显示。我的代码符合,但抛出NoClassDefFound运行时异常:

SEVERE: Error happened while running the report.
java.lang.NoClassDefFoundError: javax/media/jai/PlanarImage
  at org.eclipse.birt.sample.reportitem.rotatedlabel.util.GraphicsUtil.createDocImage
(GraphicsUtil.java:66)
  at org.eclipse.birt.sample.reportitem.rotatedlabel.RotatedLabelPresentationImpl.onRowSets
(RotatedLabelPresentationImpl.java:136)
  at org.eclipse.birt.report.engine.extension.ReportItemPresentationBase.onRowSets
(ReportItemPresentationBase.java:218)
  at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.
processExtendedContent(LocalizedContentVisitor.java:966)
...

我正在使用PlanarImage.getAsBufferedImage()方法,所以它应该转换为更标准的图像对象。我已将JAI jar文件放在我的JRE中,并在Eclipse插件环境之外测试了相同的基本代码 - 这很好。它似乎是一个CLASSPATH问题,但我已经验证我的系统上的所有JRE都在适当的位置包含必要的jar和DLL文件。

对于新的JDBC驱动程序,您必须将jar放在插件的特殊子目录中 - 是否有一个特殊的位置可以放置其他第三方jar以便BIRT可以使用它们?

1 个答案:

答案 0 :(得分:2)

这已在Eclipse extension for opening TIFF type 4 images中解决。基本上你只需要创建一个子目录并将所有JAR和DLL放入其中,将jar添加到类路径中,并将DLL添加到“required native libraries”下的“plugin dependencies”。