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 の近くに配置します。

それが「うまくいく」ための簡単な方法です。

アプリが依存している dll を特定するには、次の 2 つの一般的な方法があります。

  1. アプリを実行し、必要なものを確認します (Windows では、DLL が見つからないというメッセージが表示されるはずです) - nmot は最も便利で信頼性が高いです。

  2. このような静的分析ツールを使用して、exe の依存関係を分析します。ほとんどの場合に機能するはずです。

これはアドホックな方法であり、本番環境でそのようなことを行うことはお勧めしません。

于 2013-05-20T10:28:58.117 に答える
0

最も簡単な方法は、Cygwin をインストールすることです。

それができない (またはしない) 場合は、いくつかの方法を試すことができますが、どちらも成功するとは限りません。

  1. ソース コードをダウンロードして、お気に入りの Windows C または C++ (またはその他の) コンパイラを使用して、ネイティブ ウィンドウ用にビルドすることができます。これが失敗した場合 (おそらく失敗する可能性があります)、UNIX 固有のライブラリを同等の Windows ライブラリ呼び出しに置き換えて、コードの移植を試みることができます。警告: これを実行するには、C / C++ および Windows プログラミングのスキルが必要です。

  2. アプリケーションが実行する必要があるすべての DLL を特定して提供することを試みることができます。ただし、これらの DLL の一部は Cygwin の一部になるため、最初にそれらを入手するには Cygwin をダウンロードする必要があります。

注意: あなたの意図がこれを再配布することである場合、インストーラー (または何でも) で Cygwin DLL を再配布することは、コードがCygwin Licenseの条項に準拠する必要があることを意味する場合があります。それは基本的に例外を除いて GPL 3+ です。別の方法として、RedHat から特別なライセンスを取得する (つまり、料金を支払う) こともできます。いずれにせよ、独自の調査を行うか、ライセンスの影響について有能なアドバイスを得る必要があります。

于 2013-05-20T10:52:35.260 に答える