首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IKVM转换JAR (飞碟- xhtmlrenderer)

使用IKVM转换JAR (飞碟- xhtmlrenderer)
EN

Stack Overflow用户
提问于 2010-06-01 15:41:03
回答 2查看 2.8K关注 0票数 3

我想在.NET中使用飞碟Java API,所以我尝试使用IKVM来转换Flying Saucer库:

代码语言:javascript
复制
ikvmc core-renderer.jar

出于某种原因,IKVMC给了我一个可执行的core-renderer.exe,所以我将其重命名为core-renderer.dll,添加到我的程序集中并删掉

代码语言:javascript
复制
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,有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-04 18:22:58

事实证明,对于这种特定的情况,我需要渲染for和iText (for的一个依赖项),并让for程序集引用它的依赖项:

代码语言:javascript
复制
ikvmc -target:library itext.jar
ikvmc -target:library -reference:itext.dll core-renderer.jar

(对于新手:如果您没有阅读任何文档,只是在尝试命令,则还需要确保随IKVMC提供的DLL文件也存在--最简单的方法是将所有IKVMC文件都转储到您的iText JAR文件旁边)

票数 5
EN

Stack Overflow用户

发布于 2010-06-01 16:18:25

确保您的项目中包含了IKVM.AWT.WinForms.dllIKVM.OpenJDK.ClassLibrary.dllIKVM.Runtime.dllIKVM.Runtime.JNI.dll程序集。此外,为了避免生成可执行文件然后重命名它,可以在编译时指定-target:library开关。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2947990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档