我今天有点问题,我想在我的java程序中使用this tool。但在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);
谢谢你是否存在解决方案。
答案 0 :(得分:0)
如果你不关心分发/许可的东西 - 找出你的应用依赖的dll并将它们放在你的exe附近。
这是“让它发挥作用”的简便方法。
您有2种一般方法可以确定您的应用依赖的dll:
运行应用程序,看看它需要什么(窗口应该给你一个缺少dll的消息) - nmot方便最可靠。
使用this之类的静态分析工具来分析exe依赖关系 - 应该适用于大多数情况。
请注意,这是一种非常特殊的方法,我建议你不要在生产中做类似的事情。
答案 1 :(得分:0)
到目前为止,最简单的方法是安装Cygwin。
如果你不能(或不会)这样做,你可以尝试一些事情,但两者都不能保证成功:
您可以下载源代码并尝试使用您喜欢的Windows C或C ++(或其他)编译器为本机窗口构建它。如果失败(可能会失败),您可以尝试 port 代码,用等效的Windows库调用替换特定于UNIX的库。警告:你需要一些C / C ++和Windows编程技巧来解决这个问题。
您可以尝试识别并提供应用程序运行所需的所有DLL。但是,其中一些DLL将成为Cygwin的一部分,因此您首先需要下载Cygwin以获取它们。
当心:如果您的目的是重新分发,请在安装程序(或其他)中重新分发Cygwin DLL 可能意味着您的代码需要遵守Cygwin License的条款。这基本上是GPL 3+,但有例外。或者,您可以从RedHat获得(即支付)特殊许可。无论哪种方式,做自己的研究和/或获得有关许可影响的合格建议。