Tomcat为AppData返回错误的路径

时间:2018-03-29 12:49:20

标签: java tomcat environment-variables

我在java中使用内置节点的第三方工具进行项目构建。该第三方工具默认安装在

  

C:\用户\ ZXC \应用程序数据\漫游\ NPM \ XYZ

当我在Eclipse中运行我的代码时,它运行正常,并使用

为我提供 AppData 的正确路径
  

System.getenv( “应用程序数据”)

但是在tomcat上运行相同的代码给了我这条路径

  

C:\的Windows \ system32 \设置\应用程序数据\漫游

此路径不正确,此配置文件夹中也没有AppData文件夹。是否有我遗漏的东西,或System.getenv无法在tomcat上运行?

1 个答案:

答案 0 :(得分:1)

这是因为当您在Eclipse中运行应用程序时,该进程的所有者是您的Windows用户 - ZXC ,而将Tomcat作为服务运行时,它很可能将其作为LocalSystem和每个用户的CATALINA_BASE/bin/setenv.bat默认位置不同

将环境变量传递给Tomcat而不依赖于特定于用户的路径的正确方法是为Windows创建文件CATALINA_HOME/bin/setenv.batset “PATH_TO_TOOL=C:\Users\ZXC\AppData\Roaming\npm\xyz" (用于* nix环境的setenv.sh)和内部,设置您可能需要在应用程序内使用的任何变量。在这种情况下,内容应如下所示:

PATH_TO_TOOL

然后在您的应用程序AppData变量中使用(或选择更好的命名),以避免由于setenv用户变量的具体情况而导致的任何可能的进一步问题。您可以在Tomcat documentation中查看有关{{1}}脚本用法的更多详细信息。

相关问题