2011-12-11 44 views
0

我有一个install4j项目,我从GUI和命令行运行。您可能知道可以将安装程序参数传递给varfile。 我想知道是否有一个简单的方法,让在形式varfile相对路径: my.variable = $ {安装程序:installerDir} \ A.TXT在Install4j中,如何在varfile中设置相对路径?

我可以看到一个解决办法,我可以要求用户只指定文件名,我将把目录路径放在代码中。但我仍然想知道这是否可能。

谢谢。 Ika。

回答

0

您不能在变量文件中使用安装程序变量。该文件是在定义任何其他安装程序变量之前在启动时读取的,因此您无法首先设置“installerDir”变量。

我在这里看到的唯一选择是使用自己的道理,说

my.variable = @ installerDir @ \ A.TXT

,并在“启动”使用“运行脚本”行动节点将该令牌替换为特定的目录。下面是一些检查所有定义的变量:

String installerDir = null; 
    InstallerContext context = null; 
    for (Object o : context.getVariableNames()) { 
     String variableName = (String)o; 
     Object variableValue = context.getVariable(variableName); 
     if (variableValue instanceof String) { 
      String replacedValue = ((String)variableValue).replaceAll("@[email protected]", installerDir); 
      if (!replacedValue.equals(variableValue)) { 
       context.setVariable(variableName, replacedValue); 
      } 
     } 
    } 
+0

谢谢,我最终通过生成varfile来解决这个问题。 – Ika

相关问题