java - Spring引导-设置PERL5LIB

标签 java perl spring-boot unix

我们有一个 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 个选项:

  1. 在应用程序启动之前全局设置 PERL5LIB(shell 和 WM 可以有不同的环境变量)
  2. 调用 scirpt 时设置 PERL5LIB
  3. 使用shell脚本设置PERL5LIB并调用perl脚本,从spring调用该shell脚本

前两个选项取决于您运行 Spring 应用程序的方式以及用于调用外部脚本的代码。第三个应该可以工作。

如果没有帮助,请从您的应用中添加调用外部脚本的代码。

关于java - Spring引导-设置PERL5LIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981901/

相关文章:

java - 如何在java中采用输入("\n")分隔并以双输入(“\n\n)结尾的多行字符串输入?

java - Apache Commons 配置将属性设置为环境变量 - 如何?

java - 异常 : org. springframework.core.convert.ConverterNotFoundException:找不到能够从类型转换的转换器

java - 跳过 Maven 部署一个模块

java - 设置非常大的打开文件限制的副作用?

Java - 如何向 HashMap 中的现有键添加新值。 1 个键,多个值

Java最佳实践: Using doubleValue() in calls that only accept primitive types parameters

arrays - 如何从 Perl 数组中只提取我想要的元素?

windows - 如何在 Windows 中使用 File-Rename 又名 Perl 的重命名?

perl - 将行保存为 csv 格式