1
我正在依靠对7z
(LGPL)的壳调用来处理我正在进行的项目的重要部分:特别是,打开.cbr
文件。我的问题是,我无法保证能够在用户的计算机上找到它(假设它甚至在他们的计算机上)。我可以用我的程序打包外部工具吗?
是否有一些方法可以将其二进制文件保存在我的编译工具中,所以我不必担心在外部调用它们? (我的印象是这是jar文件的用途,但我不确定。)
或者如果这是不可能的,那么标准的方法是什么?
我正在依靠对7z
(LGPL)的壳调用来处理我正在进行的项目的重要部分:特别是,打开.cbr
文件。我的问题是,我无法保证能够在用户的计算机上找到它(假设它甚至在他们的计算机上)。我可以用我的程序打包外部工具吗?
是否有一些方法可以将其二进制文件保存在我的编译工具中,所以我不必担心在外部调用它们? (我的印象是这是jar文件的用途,但我不确定。)
或者如果这是不可能的,那么标准的方法是什么?
通常来说,这是您希望获得库依赖性来处理文件解压缩的地方。有些人用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调用。