java - Perl 内联::Java。如何在编译时获取Classpath环境变量?

标签 java perl environment-variables classpath

我正在编写一个 Perl 脚本,它使用 Inline::Java 模块。 通过硬编码 CLASSPATH 配置选项来包含外部库,例如

   use Inline (
        Java      => 'DATA',
        CLASSPATH => '/way/to/classes:/way/to/Jar.jar:.',
);

有效。但是通过编写来使用环境变量CLASSPATH

use Inline (
    Java      => 'DATA',
    CLASSPATH => $ENV{CLASSPATH},
);

不起作用(也许是因为 %ENV 是在运行时设置的??)。将整个内容包装在 BEGIN block 中,即尝试显式编写“use”

   BEGIN {    
        require Inline(
            Java      => 'DATA',
            CLASSPATH => $ENV{CLASSPATH},
        );
}

效果不佳(因为上面的代码导致了编译错误)。有人知道如何在 Inline::Java 中使用 CLASSPATH 环境变量吗?

最佳答案

试试这个:

$inline1 = "use Inline (    Java      => 'DATA',    CLASSPATH => $ENV{CLASSPATH},)";
print $inline1;
eval $inline1;

关于java - Perl 内联::Java。如何在编译时获取Classpath环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593802/

相关文章:

Python在if语句中使用正则表达式匹配对象,然后像Perl一样访问捕获组

python - 为什么内部函数不能在python的外部范围内获取变量

java - 按对象的两个字段排序。 java

java - 如何使 Async 注解在 Spring Boot 中工作?

mysql - 为什么我尝试使用 Perl 的 DBD::mysql 时会出现错误?

bash - 在 perl unpack 中解析 unicode 字符串的结果不一致

docker - 在运行时使用Docker设置vueJS env变量

java - Tomcat:如何在 Netbeans 中设置 Java 系统属性?

java - Web 驱动程序和 Web 驱动程序后端 Selenium 和 PhantomJs 之间的区别

java - 比较三胞胎。打印两个空格分隔的整数,表示 Alice 和 Bob 分别获得的比较点