我想在.NET中使用飞碟Java API,所以我尝试使用IKVM来转换Flying Saucer库:
ikvmc core-renderer.jar出于某种原因,IKVMC给了我一个可执行的core-renderer.exe,所以我将其重命名为core-renderer.dll,添加到我的程序集中并删掉
using java.io;
using java.lang;
using com.lowagie.text;
using org.xhtmlrenderer.pdf;
namespace flying_saucer
{
class FlyingSaucerApp
{
static void Main(string[] args)
{
// This works
DocumentException dummy = new DocumentException();
ITextRenderer renderer = new ITextRenderer();
// For some reason, this raises NoClassDefFoundError
renderer.setDocument(File("hello.xhtml").toURI().toURL().toString());
}
}
}出于某种原因,它提供了java.lang.NoClassDefFoundError: com.lowagie.text.DocumentException。我意识到ITextRender()可能会抛出DocumentException,但我已经包含了com.lowagie.text,有什么想法吗?
发布于 2010-06-04 18:22:58
事实证明,对于这种特定的情况,我需要渲染for和iText (for的一个依赖项),并让for程序集引用它的依赖项:
ikvmc -target:library itext.jar
ikvmc -target:library -reference:itext.dll core-renderer.jar(对于新手:如果您没有阅读任何文档,只是在尝试命令,则还需要确保随IKVMC提供的DLL文件也存在--最简单的方法是将所有IKVMC文件都转储到您的iText JAR文件旁边)
发布于 2010-06-01 16:18:25
确保您的项目中包含了IKVM.AWT.WinForms.dll、IKVM.OpenJDK.ClassLibrary.dll、IKVM.Runtime.dll和IKVM.Runtime.JNI.dll程序集。此外,为了避免生成可执行文件然后重命名它,可以在编译时指定-target:library开关。
https://stackoverflow.com/questions/2947990
复制相似问题