我正在运行一个启动Java应用程序的脚本。执行后,应用程序在当前工作目录%systemdrive%/ProgramData\Microsoft\Windows\Caches\cversions.2.db
中创建一个文件夹。我在this问题上读到了问题,因为在执行的Java上下文中未定义变量%SystemDrive%
。
申请执行时:
system("java -jar application.jar");
如何明确地将所有环境传递给已执行的应用程序?
答案 0 :(得分:3)
如果您使用字符串%systemdrive%\ProgramData\Microsoft\Windows\Caches
来创建文件夹,那么它将不起作用。只有命令shell才会在命令中扩展环境变量,而Perl或Java将需要显式扩展该值。在Perl中你会使用
$ENV{SYSTEMDRIVE} . '\ProgramData\Microsoft\Windows\Caches'
在Java中你想要
System.getenv("SYSTEMDRIVE") + . "\\ProgramData\\Microsoft\\Windows\\Caches"