如何为 Tomcat servlet 配置 user.dir?

2023-12-13

在我的 Tomcat servlet 中,我使用一个 jar 库来查找某些.properties文件在System.getProperty("user.dir").

问题是,当我在不同的服务器上部署 servlet 时,"user.dir"是不同的。我希望它们是一样的。有没有办法配置这个目录,使其对于每个服务器都相同?

我也跑了catalina.sh version,以及"user.dir"目录不会出现在输出中(包括CATALINA_BASE and CATALINA_HOME),这很奇怪。某些服务器会发生这种情况。在其他服务器上,"user.dir"火柴CATALINA_BASE.


Y̶o̶u̶ ̶c̶o̶u̶l̶d̶ ̶s̶e̶t̶ ̶t̶h̶e̶ ̶p̶r̶o̶p̶e̶r̶t̶y̶ ̶m̶a̶n̶u̶a̶l̶l̶y̶ ̶b̶y̶ ̶m̶o ̶d̶i̶f̶y̶i̶n̶g̶ ̶t̶h̶e̶ ̶̶c̶a̶t̶a̶l̶i̶n̶a̶.̶s̶h̶̶ ̶a̶n̶d̶ ̶s̶e̶t̶t̶i̶n̶g̶ ̶i̶t̶ ̶t̶h̶e̶r̶e̶.̶ ̶B̶u̶t̶ ̶t̶h̶i̶s̶ ̶a̶p̶p̶r̶o̶a̶c̶h ̶ ̶w̶o̶u̶l̶d̶ ̶b̶e̶ ̶v̶e̶r̶y̶ ̶c̶o̶m̶b̶e̶r̶s̶o̶m̶e̶ ̶s̶i̶n̶c̶e̶ ̶y̶o̶u̶ ̶h̶a̶v̶e̶ ̶t̶o̶ ̶s̶e̶t̶ ̶t̶h̶e̶ ̶v̶a̶l̶u̶e̶ ̶o̶f̶ ̶t̶h̶i̶s̶ ̶f̶o̶l̶d̶e̶r̶ ̶m̶a̶n̶u̶a̶l̶l̶y̶ ̶i̶n̶ ̶e̶v̶e̶r̶y̶ ̶t̶o̶m̶c̶a̶t̶ ̶i̶n̶s̶t̶a̶l̶l̶a̶t̶i̶o̶n̶.̶

这里的段落是错误的。这是因为我天真地忘记了"user.dir"财产是执行 Java 的工作文件夹(所示示例here) and 即使在执行 JVM 时使用 -D 属性也无法更改它。如果你想改变的值"user.dir",您必须更改 Java 执行的文件夹才能启动 tomcat,这可能很容易也可能很困难,具体取决于您的技能,我不推荐这种方法作为解决方案。

A̶n̶o̶t̶h̶e̶r̶ ̶o̶p̶t̶i̶o̶n̶ 最好的选择是定义一个ServletContextListener并在那里设置一个新属性(以及特定文件夹的值),在contextInitialized方法。然后,在您的任何 servlet 中,您应该恢复此属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Tomcat servlet 配置 user.dir? 的相关文章

  • Spring Batch如何作为Reader读取多个表(查询)并将其写入平面文件写入

    在我的项目中 我读取了具有不同查询的多个表 并将这些结果集合并到平面文件中 我该如何实现这一目标 我的意思是 JdbcReader 直接采用 1 个选择查询 我如何自定义它 如果 JdbcCursorItemReader 不能满足您的需求
  • 编译错误:Android Studio

    我正在尝试修改基于 IntelliJ 构建的现有 Android 项目 我已经搜索并尝试了很多东西 但我的错误仍然没有消失 Error 5 1 android apt compiler main D android tinynote app
  • Windows 上的虚假唤醒。是否可以?

    我最近学习了 虚假唤醒 有人说这个问题只可能发生在某些类型的 Linux PC 上 我用的是窗户 我为虚假唤醒编写了测试 我得到的结果是这是可能的 但我想向您展示这个测试 也许我在某个地方犯了错误 我的初始变体 import java ut
  • Hamcrest 泛型地狱 #2:iterable With Size 给出错误“不适用于参数”

    在 hamcrest 中 1 3 RC2 没有 JUnit 依赖项 我使用失败iterableWithSize 我有一个 扩展 Iterator参数化为Content像这样EndResult
  • 如何使用 log4j 自动记录类中调用的每个方法

    我有一个包含数据库调用的类 我通常希望使用 log4j 记录该类中调用的每个方法 带参数 logger debug foo id id initiated 可以自动执行此操作吗 也许通过在每个方法的开头使用某种注释而不是编写每个 logge
  • 在 Jenkins 内运行构建时,我收到“java/lang/OutOfMemoryError”

    2020 02 25 10 11 24 986 0000 id 79 信息hudson model AsyncPeriodicWork lambda doRun 0 开始maven repo cleanup 2020 02 25 10 11
  • lombok - 多个镜头中的 @Builder 模式

    I use Builder of 龙目岛项目 https github com rzwitserloot lombok 所以考虑我有这个例子 Builder public class Client private Getter Setter
  • 如何用java对jpg进行像素化?

    我正在尝试使用 Java 6 对 JPEG 进行像素化 但运气不佳 它需要使用 Java 而不是像 Photoshop 这样的图像处理程序 并且它需要看起来像老派 像这样 有谁能够帮助我 使用java awt image javadoc h
  • 用java解密AES加密文件

    我有一个使用 AES 使用 java 应用程序加密的文件 我还有一个加密的密钥文件 但我不明白如何使用密钥来解密文件 大多数教程和示例都会在一个地方创建临时随机密钥 加密文件和解密 所以 问题是如何指定解密时必须使用的密钥 EDIT 我发现
  • 使用 javax.mail 和 CentOS 的邮件服务器

    我有一个 Java 程序 安装在一台旧的 Ubuntu 机器上 并使用 javax mail 发送邮件 然而 那台机器宕机了 我现在在新的 CentOS 机器上运行相同的 Java 应用程序 但是 当我尝试使用 mail smtp host
  • 序言中不允许引用

    请帮我找到这个异常的原因 我使用以下罐子 core renderer jar itext paulo 155 jar 第一个文档 xhtml lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE h
  • 如何在最短的时间内克隆java中的输入流

    有人可以告诉我如何克隆输入流 并花费尽可能少的创建时间吗 我需要多次克隆输入流以使用多种方法来处理 IS 我尝试了三种方法 但由于这样或那样的原因 事情不起作用 方法 1 感谢 stackoverflow 社区 我发现以下链接很有帮助 并将
  • Java 中 LINQ 的等价物是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中 LINQ 的等价物是什么 没有什么比 LINQ for Java 更好的了 Edit 现在
  • JFreeChart MeterPlot

    我目前正在用java做Agent项目 在某些时候 我需要显示一个仪表 例如 电池电量 我的程序中有 5 个代理 每个代理都会创建自己的带有名称的仪表图 但不知何故他们没有更新数据集 或者他们正在更新数据集 只是它没有显示在仪表图上 任何想法
  • 对于每个抛出异常的语句,try/catch 是否被视为反模式?

    我目前正在审查同事的 Java 代码 我看到很多情况下 每个可能抛出异常的语句都被封装在自己的 try catch 中 其中 catch 块都执行相同的操作 哪个操作与我的问题无关 对我来说 这似乎是一种代码味道 我记得读到过它是一种常见的
  • 如何实现再次播放功能?

    我希望在游戏结束时得到提示 如果我还想再玩一次的话 并使用 Y N 输入 退出游戏或重复游戏 我该如何以最有效的方式解决这个问题 编辑 描述资源路径位置类型 类型 Main Main java ScaredyCat src se grupp
  • 仅在java中使用数组计算50的阶乘

    我是java的初学者 我有一个作业要编写一个完整的程序 使用数组计算 50 的阶乘 我无法使用像 biginteger 这样的任何方法 我只能使用数组 因为我的教授希望我们理解背后的逻辑 我猜 然而 他并没有真正教我们数组的细节 所以我在这
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • PSQLException:错误:关系“TABLE_NAME”不存在

    我正在尝试在 PostgreSQL 8 4 2 DB 上运行休眠 每当我尝试运行简单的java代码时 例如 List
  • 文件构造函数说明

    我无法理解以下文件构造函数 public File String parent String child and public File File parent String child 参数有什么作用parent and child该文件

随机推荐

  • 向 BroadcastReceiver 发送额外内容

    我有一个运行以下代码的活动 定义了时间和间隔 Intent buzzIntent new Intent getBaseContext BuzzReceiver class PendingIntent pendingIntent Pendin
  • 上周一的日期 Excel

    今天是 2013 年 2 月 27 日 星期三 我需要一个公式 该公式将返回上周一的日期 即 02 17 2013 我需要这样才能在发送电子邮件的 vba 代码中使用文件名或电子邮件主题 With oMail Uncomment the l
  • 是否可以在 Silverlight 中绑定到 lambda 表达式?

    我有一个仅绑定到集合的列表框 该集合有一个子集合 StepDatas 我想绑定到子集合的计数 但使用 WHERE 语句 我可以绑定到 ChildCollection Count 但在需要添加 lambda 表达式时会迷失方向 这是 XAML
  • 在 init 中使用属性访问 iVar?

    这是上一个问题的分支 这是不好的做法吗 使用属性来设置 iVar Designated initializer 001 id initWithName NSString newName andType NSString newType se
  • 如何计算R中沿线的两点之间的地理距离?

    Inputs 我有两个形状文件导入到 R 中 这样我最终得到了 包含公交路线的空间线数据框 包含公交车站的空间点数据帧 绘制给定路线及其停靠点如下所示 样本数据 This link包括两个可作为 zip 格式下载的 shapefile 其中
  • IF EXISTS 条件不适用于 PLSQL

    我正在尝试在条件为 TRUE 时打印文本 选择的代码工作正常 当我只运行选择代码时 它显示 403 值 但当条件存在时我必须打印一些文本 下面的代码有什么问题 BEGIN IF EXISTS SELECT CE S REGNO FROM C
  • 用于测验应用程序的 Rails 关联和数据库设计

    我正在构建这个测验应用程序 我希望它有点复杂 我想出了这个数据库模式 但我真的很困惑 对我需要什么关联和东西感到困惑 嗯 需要注意的一件事是 当创建测试时 没有关于参加该测试的考生人数的信息 所以 我创建了test questions an
  • AJAX jQuery 每 5 秒刷新一次 div

    我从一个网站获得了这段代码 并根据我的需要进行了修改 div div
  • 如何使用适当的特异性来设计没有 !important 的 :root 样式

    里面一个自定义元素因为border color在父页面上设置 我无法设置border color不求助于工作 important host player O color var color2 border color var color2
  • perl fork() exec() ,子进程疯狂

    我在用Linux and sh is in tcsh 我做了一个非常基本的fork and exec 但我需要帮助来实施安全措施 基本上我的 perl 脚本调用 sh子进程中的脚本 但当我这样做时Ctrl c为了杀死父进程 子进程会忽略该信
  • Excel 中的链接表和切片器

    我无法在 Excel 中创建一个切片器 该切片器不仅按主表进行过滤 还按辅助表进行过滤 该辅助表应与第一个表 具有作为引用的字段键 链接 换句话说 主表是students表 有一个唯一的ID作为引用 第二个表是每个学生参加的课程 我希望切片
  • CentOS 7 上 Ambari 2.7.5 安装失败

    我正在 CentOS 7 计算机上安装 Apache Ambari 2 7 5 我正在关注Apache 网站上的安装指南 指南第 1 步的最后一个命令 mvn B 全新安装 rpm rpm DnewVersion 2 7 5 0 0 Dbu
  • 将结果右对齐

    我再次问同样的问题 现在提供更多详细信息 希望能得到有效的解决方案 在下面的代码中 输出将打印对齐到行的右侧 table border 1 style width 100 tr td align right div test div td
  • PHP - 根据另一个数组的元素对数组元素进行排序:)

    所以我有两个数组 其中之一看起来像这样 它的值或元素的数量可以改变 array 4dec def3 a3d6 d12f 和另一个 array array id gt d12f name gt John array id gt a5f1 na
  • 在文件夹/目录中搜索特定文件扩展名 (PHP)

    我正在尝试用 PHP 设计一个程序 该程序允许我在由多个文件夹组成的已知目录中查找具有特定文件扩展名 例如 jpg shp 等 的文件 示例代码 文档或有关我需要使用哪些方法的信息将非常感激 glob很简单 对于递归下降有一些建议readd
  • 如何在服务器和 GWT 客户端之间使用 RSA?

    我想加密 Java 服务器后端和 GWT 客户端之间的数据 在 GWT 客户端上我使用sbn js图书馆 它的工作速度非常快 而且比gwt 加密 以下是我如何在给定 RSA e n 的客户端进行加密 我创建了一个JSFiddle var n
  • 简单的 C++ 交换函数

    为什么如果我有这样的函数 要交换两个数字 它不起作用 swap 我知道我可以通过在原型中声明指针来做到这一点 然后将各个变量的地址传递给main 但适用于数组 无需传递指针和地址 不起作用 void num exchange int m i
  • 在 log(n) 时间内获取排序数组中落在特定范围内的元素数量

    假设我有一个以下类的数组 按 y 升序排序 public class Obj public int x public int y 如何找到数组中 y 值在 log N 时间内给定的最小和最大范围内的 Obj 项的数量 我考虑过使用二分搜索来
  • 将 pyspark 字符串转换为日期格式

    我有一个日期 pyspark 数据框 其字符串列的格式为MM dd yyyy我正在尝试将其转换为日期列 I tried df select to date df STRING COLUMN alias new date show 我得到一串
  • 如何为 Tomcat servlet 配置 user.dir?

    在我的 Tomcat servlet 中 我使用一个 jar 库来查找某些 properties文件在System getProperty user dir 问题是 当我在不同的服务器上部署 servlet 时 user dir 是不同的