我们有一个 Spring Boot 应用程序,它调用 Perl 脚本。看来系统变量PERL5LIB没有在应用程序的上下文中设置,因为perl脚本编译失败:
Can't locate JSON.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ...
(当我直接在 shell 中运行脚本时,它可以工作 - 因为 PERL5LIB 设置正确。) 我尝试将其添加到 application.properties:
PERL5LIB=....
但这也不起作用。我做错了什么?
最佳答案
我不知道 spring-boot,但似乎 application.properties 不适合修改环境变量。
有 3 个选项:
- 在应用程序启动之前全局设置 PERL5LIB(shell 和 WM 可以有不同的环境变量)
- 调用 scirpt 时设置 PERL5LIB
- 使用shell脚本设置PERL5LIB并调用perl脚本,从spring调用该shell脚本
前两个选项取决于您运行 Spring 应用程序的方式以及用于调用外部脚本的代码。第三个应该可以工作。
如果没有帮助,请从您的应用中添加调用外部脚本的代码。
关于java - Spring引导-设置PERL5LIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981901/