2016-08-13 6 views
1

私が取り組んでいるプロジェクトの中で、7z(LGPL)へのシェル呼び出しは、具体的には.cbrファイルを開くことに頼っています。私が持っている問題は、ユーザーのコンピュータ上でそれを見つけることができるという保証はないということです(コンピュータ上であっても)。プログラムに外部ツールをパッケージ化することはできますか?

コンパイルされたツールの内部にバイナリを保存する方法はありますか?外部に呼び出すことについて心配する必要はありませんか? (私はこれがjarファイルのためのものだという印象を持っていますが、わかりません)

もしこれができないのなら、これについての標準的な方法は何ですか?

答えて

1

通常、これは、ファイルの解凍を処理するためのライブラリ依存関係を取得したい場所です。実行ファイルが必要ないと仮定して - また

libraryDependencies += "org.apache.commons" % "commons-compress" % "1.5" // Or whatever version you need 

は、あなたがあなたのビルドに含まれますresourcesファイルにexeファイルを含めることができます。一部の人々は、あなたのsbtビルド定義にthis library dependencyが必要と思われる、Apache Commons Compress使用しますシステムレベルでインストールされます。これは、src/main/resourcesディレクトリを作成し、そこにファイルを置くだけで簡単に行うことができます。あなたのjarファイルはしか対応していませんが、このルートに入る前に2度考えてください。ファイルの解凍に7-zipを使用する必要がある特別な理由がない限り、JavaまたはScala互換ライブラリを使用し、シェル呼び出しを行う必要はありません。

関連する問題