2011-12-11 7 views
0

GUI와 명령 줄에서 실행중인 install4j 프로젝트가 있습니다. 아시다시피 설치 프로그램 매개 변수를 varfile에 전달할 수 있습니다. my.variable = $ {설치 : installerDir} 형태로 varfile에서 상대 경로를 제공하는 간단한 방법이 있는지 내가 알고 싶습니다 내가 해결 방법을 볼 수 있습니다 \ Install4j에서 varfile에 상대 경로를 설정하는 방법은 무엇입니까?

a.txt이를 어디 사용자에게 파일 이름 만 지정하도록 요청할 수 있으며 코드에 디렉토리 경로를 지정합니다. 그러나 이것이 가능한지 여전히 알고 싶습니다.

감사합니다. 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

관련 문제