我有一个目录,其中有一个小结构:
script.sh
dist/
dist/program.jar
log/
log/error.log
conf/
conf/program.conf
做script.sh
一些检查,并program.jar
从很多参数开始。
有没有办法将所有这些结构封装在一个文件中(就像directory.app
OSX 中的可执行文件一样),并使该文件成为可执行文件?
答案1
不,您无法运行单个可执行文件,也无法让您的程序在未解包的情况下运行。原因是您的程序需要能够使用标准系统调用来访问其文件,如果您将这些文件打包在存档中,则 Linux 将无法看到它们。
你可以做的是使用自己做创建一个可自解压的可执行文件档案。然后,您的用户将运行该可执行文件,它将从档案中提取文件,然后用户可以运行已安装的程序。
另一种选择是,由于您使用的是 Java,因此将文件打包到 .jar 档案中,然后重组代码。然后,您可以分发单个 .jar 文件,然后用户使用 运行它java -jar
。