首页 > 解决方案 > 在 Linux 上的哪里放置 .jar 文件?

问题描述

我有一个自定义构建的库,用于运行 Python 服务systemd(所有用户都可以使用并在启动时开始)。该服务使用我的自定义构建.jar文件。

我应该在哪里复制这个库?

我认为这/usr/share/java/是正确的文件夹。这个对吗?

标签: javalinux

解决方案


如果您正在尝试遵循良好的做法并且此 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 只对你的应用程序有用。


推荐阅读