1

我今天有个小问题,我想 在我的java程序上使用这个工具。但在 Windows 上,它只能在安装 jpeg 库后与 Cygwin 一起使用。

所以我的问题是:如何在我的 java 程序上运行它,例如:

String[] cmd = {"C:\\Users\\Bastien\\Desktop\\jpegoptim\\jpegoptim.exe", "some args"};
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec(cmd);

感谢是否存在解决方案。

4

2 回答 2

0

如果您不关心分发/许可的东西 - 找出您的应用程序依赖的 dll 并将它们放在您的 exe 附近。

这是“让它工作”的简单方法。

您有 2 种通用方法来确定您的应用程序所依赖的 dll:

  1. 运行应用程序并查看它需要什么(Windows 应该给您一条缺少 dll 的消息) - nmot 方便但最可靠。

  2. 使用像这样的静态分析工具来分析 exe 依赖项 - 应该适用于大多数情况。

请注意,这是相当临时的方法,我不建议您在生产中做类似的事情。

于 2013-05-20T10:28:58.117 回答
0

到目前为止,最简单的方法是安装 Cygwin。

如果您不能(或不会)这样做,您可以尝试几件事,但都不能保证成功:

  1. 您可以下载源代码并尝试使用您最喜欢的 Windows C 或 C++(或其他)编译器为本地 Windows 构建它。如果失败(而且很可能会失败),您可以尝试移植代码,用等效的 Windows 库调用替换特定于 UNIX 的库。警告:您需要一些 C/C++ 和 Windows 编程技能才能完成此任务。

  2. 您可以尝试识别并提供应用程序需要运行的所有 DLL。但是,其中一些 DLL 将成为 Cygwin 的一部分,因此您首先需要下载 Cygwin 以获取它们。

注意:如果您打算重新分发它,在您的安装程序(或其他)中重新分发 Cygwin DLL可能意味着您的代码需要遵守Cygwin License的条款。这基本上是 GPL 3+,但有一个例外。或者,您可以从 RedHat 获得(即付费)特殊许可证。无论哪种方式,请自行研究和/或获得有关许可影响的合格建议。

于 2013-05-20T10:52:35.260 回答