2016-08-13 70 views
1

我正在依靠对7z(LGPL)的壳调用来处理我正在进行的项目的重要部分:特别是,打开.cbr文件。我的问题是,我无法保证能够在用户的计算机上找到它(假设它甚至在他们的计算机上)。我可以用我的程序打包外部工具吗?

是否有一些方法可以将其二进制文件保存在我的编译工具中,所以我不必担心在外部调用它们? (我的印象是这是jar文件的用途,但我不确定。)

或者如果这是不可能的,那么标准的方法是什么?

回答

1

通常来说,这是您希望获得库依赖性来处理文件解压缩的地方。有些人用Apache Commons Compress,这就需要this library dependency在SBT构建定义:

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

或者,您可以包括exe文件中resources文件,将得到包含您的构建 - 假设可执行文件并不需要在系统级安装。这可以像创建src/main/resources目录并将文件放在那里一样简单。尽管如此,你的jar版本只能在下工作,所以在走这条路线之前要三思。除非需要使用7-zip来解压缩文件,否则最好使用Java或Scala兼容库,并避免必须进行shell调用。

相关问题