java - 在 Linux 上的哪里放置 .jar 文件?
问题描述
我有一个自定义构建的库,用于运行 Python 服务systemd
(所有用户都可以使用并在启动时开始)。该服务使用我的自定义构建.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 只对你的应用程序有用。
推荐阅读
- sql-server - 删除某些条目并返回其 ID 的存储过程
- javascript - 如何配置 npm build 为相同的内容生成相同的哈希?
- ios - 如何使用 Amazon Cognito 用户池从 Facebook 凭证获取 JWT?
- php - 如何将 PHP 页面上传到 Cpanel 以及我们如何访问它
- docker - docker howto 中的 qemu
- mongodb - 如何测试mongodb子文档中数组的每个元素
- javascript - 匹配两个查询以检查数据类型
- python - 遍历 xarray。DataArray 第一维及其坐标
- c# - ELMAH - 生产环境中未收到电子邮件
- javascript - 如何修复放置在 AngularJS 中的 ng-repeat 标签内的 Stripe 的“用卡付款”按钮?