java - 使用 IKVM 转换 JAR (Flying Saucer - xhtmlrenderer)

标签 java .net ikvm flying-saucer

我想在 .NET 中使用 Flying Saucer Java API,所以我尝试使用 IKVM转换 Flying Saucer图书馆:

ikvmc core-renderer.jar

出于某种原因,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());
        }
    }
}

出于某种原因,它给出了 java.lang.NoClassDefFoundError: com.lowagie.text.DocumentException。我意识到 DocumentExceptionITextRender() 可能抛出的东西,但我已经包含了 com.lowagie.text,有什么想法吗?

最佳答案

事实证明,对于这种特殊情况,我需要同时渲染 Flying Saucer 和 iText(Flying Saucer 的依赖项),并让 Flying Saucer 程序集引用其依赖项:

ikvmc -target:library itext.jar
ikvmc -target:library -reference:itext.dll core-renderer.jar

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

关于java - 使用 IKVM 转换 JAR (Flying Saucer - xhtmlrenderer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947990/

相关文章:

JDialog 关闭后 Java JComponent 不重新绘制

java - Android中如何添加user_photos权限获取facebook相册照片?

c# - 长时间运行的 Windows 服务

c# - 在 NHibernate 中调用 Named Query 并将参数传递给 Sybase Server

java - 使用 IKVM 将 .jar 导入 .dll 并使用它

java - 在运行时加载类

Java 实用类和通过继承的扩展

java - 如何在 Java 中使用 Httpunit 发送多部分请求

c# - MySQL ODBC 驱动程序 : SQL works in an editor like workbench but not within . NET odbc

java - 在c#中使用Java类时找不到类异常