ImageIO.read使用IKVM返回null

时间:2015-11-04 15:00:22

标签: java javax.imageio ikvm

我有一个用java编写的库(庞大并在整个公司使用),我必须在C#下使用它。我使用Ikvm(ikvmc实用程序)生成生成Dll。

Java Lib使用了很多pdfbox函数,并且在其中一个函数中,我只有在使用throug .NET时弹出一个nullpointer异常(所以我链接了通过IKVM生成的dll)。如果我直接从Java使用代码,那就顺利了。

private void calcualteImageSize(InputStream fis) throws IOException {

 BufferedImage bimg = ImageIO.read(fis);

 int width = bimg.getWidth();
 int height = bimg.getHeight();

 sigImgHeight = (float) height;
 sigImgWidth = (float) width;

}

在此之后

 BufferedImage bimg = ImageIO.read(fis);

bimg为null,而fis不为null(我已经检查过)。 在Java库的某些点上通过IKVM使用的相同的stament返回OK,只有用于pdfbox的那个弹出异常。 我认为使用IKVM可能会出现问题,但我无法指出它。

堆栈跟踪

java.lang.NullPointerException at org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSignDesigner.calcualteImageSize(PDVisibleSignDesigner.java:325)
at org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSignDesigner.signatureImageStream(PDVisibleSignDesigner.java:303)
at org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSignDesigner.<init>(PDVisibleSignDesigner.java:98)
at it.getPDVisibleSigProperties(SignedPDF.java:2685)
at it.addSignatureRevision(SignedPDF.java:2413)
at it.Lib.Test(Lib.java:442)
at cli.Porting.Test.Main(Test.cs:13)
at cli.System.AppDomain._nExecuteAssembly(Unknown Source)
at cli.System.AppDomain.ExecuteAssembly(Unknown Source)
at cli.Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly(Unknown Source)
at cli.Porting.Test.Main(Test.cs:13)
at cli.System.AppDomain._nExecuteAssembly(Unknown Source)
at cli.System.AppDomain.ExecuteAssembly(Unknown Source)
at cli.Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly(U
nknown Source)

0 个答案:

没有答案