我有一个自定义构建的库,用于运行 systemd
的 Python 服务(所有用户都可以使用,并在启动时启动)。此服务使用我自定义构建的 .jar
文件。
我应该在哪里复制这个库?
我认为 /usr/share/java/
是正确的文件夹。这是正确的吗?
最佳答案
如果您尝试遵循良好的做法并且此 jar 文件未随您的应用程序一起提供,那么根据文件系统层次结构标准,您是正确的。 不过还有一些次要问题。
1) 您的服务是通过标准打包系统安装的吗?
2) 这个 jar 文件是你服务的一个组件吗,是否只为你的服务服务?
这将引导您说出类似这样的话:它是共享的,所以它应该放在这里。 如果您的服务未使用标准打包系统,通常的做法是使用/opt 目录的子树,包括/opt/your_app/lib,但这仅在您的应用程序也遵循该结构时才有用,否则只是污染。
如果您正在使用打包系统,那么/usr/share/java/或/usr/lib 确实是一个不错的选择(如果您的应用程序是从/usr/bin 或/usr/sbin 调用的)。另一个不错的选择是在/usr/local 中,前提是您的这个应用程序是特定于主机的。
为简单起见,如果您手动安装您的应用程序,而不是使用 .deb 之类的东西,请在/opt 中使用您的应用程序结构,否则您将需要评估此库的特征、共享与否,具体到您的主办与否。
/usr/share/java/是 java 应用程序的常见选择位置,但有时会被误用。
无论如何,不应该有使用/opt 或/usr 之外的子树的参数
综上所述,我几乎可以肯定,你正在寻找/opt/your_app/lib,猜测你正在打包你的应用程序并自己安装它,也猜测这个 jar 只对你的应用程序有用。
关于java - 在 Linux 上哪里可以放置 .jar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54634877/