从Java应用程序运行自定义Dita OT

从Java应用程序运行自定义Dita OT,java,dita,Java,Dita,所以我有一个Java程序,它从不同的地方获取一些数据并编写DITA文件。我还想要一个PDF文件,我已经为它创建了一个自定义DITA-OT插件。通常我在程序执行后运行Dita OT,但如果我也想自动运行Dita OT呢?如何才能做到这一点 因此,我想用Java应用程序打包我的自定义Dita OT,这样Java应用程序最终可以自动生成PDF文件。有人做过这样的事情吗,或者有其他的指示吗 我曾考虑将DITA-OT打包到Java项目的resources文件夹中,从中执行DITA-OT,但我想当我将应用程

所以我有一个Java程序,它从不同的地方获取一些数据并编写DITA文件。我还想要一个PDF文件,我已经为它创建了一个自定义DITA-OT插件。通常我在程序执行后运行Dita OT,但如果我也想自动运行Dita OT呢?如何才能做到这一点

因此,我想用Java应用程序打包我的自定义Dita OT,这样Java应用程序最终可以自动生成PDF文件。有人做过这样的事情吗,或者有其他的指示吗


我曾考虑将DITA-OT打包到Java项目的resources文件夹中,从中执行DITA-OT,但我想当我将应用程序打包到jar中时,这是行不通的。

您可以使用Ant或Gradle自动化所有这些事情。您可以下载/安装开放式工具包并启动转换。将OpenToolkit与应用程序打包会扩大应用程序的大小,因此这可能更优雅。或者您可以更仔细地看一下。您不能简单地将DITA-OT打包到JAR中,因为DITA-OT中的Ant将无法从类加载器读取资源。最简单的方法是将DITA-OT安装到应用程序具有读取权限的地方,然后运行DITA-OT的Ant进程。你也可以

  • 分叉一个新的JVM并在那里运行DITA-OT
  • 使用当前JVM并将Ant的
    项目
    对象与DITA-OT的
    build.xml
    一起运行
前者将为您提供一种安全性,即DITA-OT不会因为出现
OutOfMemoryError
而使您的应用程序崩溃,但后者在JVM升温后会更快