我依赖对7z
(LGPL)的shell调用来处理我正在处理的项目的一个重要部分:具体来说,打开Header Set Access-Control-Allow-Origin "{YOUR_WEBSITE_URL}"
个文件。我遇到的问题是无法保证我能够在用户的计算机上找到它(假设它甚至在他们的计算机上)。
有没有办法将二进制文件保存在我的编译工具中,所以我不必担心外部调用它们? (我的印象是这是jar文件的用途,但我不确定。)
或者,如果不可能,那么标准的解决方法是什么?
答案 0 :(得分:1)
通常来说,这是您希望获得库依赖项来处理文件解压缩的地方。有些人使用Apache Commons Compress,在您的sbt构建定义中需要this library dependency:
libraryDependencies += "org.apache.commons" % "commons-compress" % "1.5" // Or whatever version you need
或者,您可以将exe
文件包含在resources
文件中,该文件将包含在您的构建中 - 假设可执行文件不需要在系统级别安装。这可以像创建src/main/resources
目录并将文件放在那里一样简单。但是,您的jar 仅在兼容的系统架构上工作,所以在走这条路线之前要三思而后行。除非有特殊原因需要使用7-zip解压缩文件,否则最好使用Java或Scala兼容的库,避免必须进行shell调用。