首先,我没有这样做的经验。但是就像任何好的程序的开始一样,我有需要解决的问题,所以我愿意学习。
你们中的许多人可能已经熟悉 pdftk,它是处理各种 pdf 相关任务的便捷实用程序。据我所知,这些功能中的大多数都可以在更新、更轻的库/扩展中使用,除了我需要的(并且可能是它仍然存在的唯一原因):将表单数据文件(fdf 和 xfdf)与表单合并PDF 并获取一个新文件作为输出。
问题是我的服务器没有 gcj,这是构建/编译 pdftk 的基础。我不知道是因为我在 Solaris 上还是因为其他一些系统管理员级别的原因,但我不会很快得到 gcj。据我所知,没有为 Solaris 预编译的二进制文件。
所以我认为可以重写MAKE文件和C代码以直接通过javac导入Java库(非常古老的itext版本)。
但我不确定从哪里真正开始。我所知道的是:
- 完成后我想要一个二进制文件,这样每次使用都不需要 Java VM。
- 当前应用程序使用 GCJ。
所以我的第一个想法是“哦,这很容易,我可能可以用其他一些基于 C 的方法来调用这些类”,但是我没有找到一个简单的方法来做到这一点,而是在各个角度找到了大量冗长的帖子这可以接近,等等。
然后我在 Sun 的网站上找到了一个关于如何在 Java 类中调用其他语言(如 C)的页面。但这种方法的问题是:
- 我必须为包装器写一个包装器
- 我最好跳过那部分并用Java编写整个东西
- 如果我可以导入已有的类,我还没有准备好
- 我不清楚我是否可以在最后编译并获得一个二进制文件,或者我是否被困在每次都需要 Java 中。
再次,我为我的无知道歉。我只需要一些建议和示例,说明如何将依赖 GCJ 的 C 代码替换为直接与 Java 一起工作的代码。
当然,如果我要问“如果我们能做到这一点,我们就已经很有钱了”类型的问题,请告诉我。