AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 836436
Accepted
Vasil Koicev
Vasil Koicev
Asked: 2017-03-06 13:12:03 +0800 CST2017-03-06 13:12:03 +0800 CST 2017-03-06 13:12:03 +0800 CST

tomcat 8 catalina.properties 添加变量

  • 772

我需要从 Tomcat 应用程序中读取一个环境变量。我试着做:

/opt/tomcat/conf/catalina.properties

最后添加:

my.special.variable=some_value

并通过阅读

System.getenv("my.special.variable")

我得到空

笔记

我在操作系统级别(linux ubuntu)定义了几个,但得到它们的结果是 tomcat root - /opt/tomcat。

例如 :

printenv我可以看到变量 HOME(也带有 echo $HOME)。从tomcat之外的程序运行代码 - 结果是正确的 - /home/user.

与部署在 tomcat 中的应用程序中的代码完全相同 - /opt/tomcat。

tomcat ubuntu environment-variables
  • 2 2 个回答
  • 19962 Views

2 个回答

  • Voted
  1. Best Answer
    BillThor
    2017-03-06T21:02:40+08:002017-03-06T21:02:40+08:00

    setenv.sh您可以在(Linux/UNIX) 或setenv.bat(Windows)中定义变量。以适当的方式为您正在运行的 O/S 定义变量。对于 Linux/UNIX,您需要导出变量。您还可以在启动 Tomcat 的环境中定义它们。

    您还可以为应用程序(本地)更改创建一个appenv.sh或appenv.bat文件。阅读现有的setenv.sh或setenv.bat文件以获取详细信息。

    句点和连字符对环境变量无效。传统上,名称是通过大写名称并将句点和连字符更改为下划线来转换的。那将给出名称MY_SPECIAL_VARIABLE。这将使用如下行定义:

    export MY_SPECIAL_VARIABLE=some.value
    

    您还可以通过添加字符串“-Dmy.special.variable=some_value setenv.sh”来定义 Java 系统属性,to the command line used to start Tomcat. This is done in the same file. In您可以添加如下行:

    export JAVA_OPTS="$JAVA_OPTS -Dmy.special.variable=some_value"
    

    您还可以使用此文件来调整 Java 配置。如果JAVA_OPTS在启动 Tomcat 的环境中定义了系统变量,它的值将被添加到命令行中。

    如果您使用 Java 系统属性,您可以调用System.getProperty. 这将被编码为:

        System.getProperty("my.special.variable");
    
    • 6
  2. towo
    2017-03-06T13:59:35+08:002017-03-06T13:59:35+08:00

    环境变量不是 Tomcat 属性。

    AFAIK 你不能使用实际代码中的属性,例如 server.xml。

    如果您想使用可以通过 System.getenv 检索的环境变量,则需要在您的操作系统中定义它们;这完全取决于。一个经典的 Linux 示例将在/etc/default/tomcatsystemd 服务中或中。

    • 0

相关问题

  • jvm性能调优技巧/资源?

  • 使 Jakarta 连接器与 IIS 一起工作时出现问题

  • 如何禁用tomcat缓存?我遇到了奇怪的静态文件问题

  • Hudson 无法在 tomcat5 中启动

  • Tomcat 6 HTTP 日志滚动和清除

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve