kiz*_*zx2 3 .net java ikvm flying-saucer
我想在.NET中使用Flying Saucer Java API,所以我尝试使用IKVM转换Flying Saucer库:
ikvmc core-renderer.jar
Run Code Online (Sandbox Code Playgroud)
出于某种原因,IKVMC给了我一个exe,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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它正在给予java.lang.NoClassDefFoundError: com.lowagie.text.DocumentException.我意识到可能会抛出DocumentException一些东西ITextRender(),但我已经包含了com.lowagie.text什么想法?
事实证明,对于这种特殊情况,我需要渲染Flying Saucer和iText(Flying Saucer的依赖)并让Flying Saucer程序集引用它的依赖:
ikvmc -target:library itext.jar
ikvmc -target:library -reference:itext.dll core-renderer.jar
Run Code Online (Sandbox Code Playgroud)
(对于新手:如果您没有阅读任何文档并且只是尝试命令,您还需要确保IKVMC附带的DLL文件也存在 - 最简单的方法是将所有IKVMC文件转储到您的旁边iText JAR文件)