Не уверен, что кто-либо еще когда-либо сталкивался с этой ошибкой, но я обновляю существующий проект установки Install4j. Я заметил, что всякий раз, когда используется контекст install4j, строка используется напрямую. Например:Install4j Constants Casuing Build Failures
context.setVariable("somekey", "Some value");
Я думал, что это было бы удивительным, чтобы переместить «somekey» в класс Java, где константы могут быть совместно по всему install4j и код Java.
Я создал класс, как так:
public class InstallerContextConstants {
public static String KEY = "STRING_KEY";
}
Так я иду, чтобы добавить это предварительно activiation сценарий экран, как так:
import com.somepackage.InstallerContextConstants;
Util.showMessage(InstallerContextConstants.APPLICATION_ONLY_INSTALL);
Однако это не будет компилировать ...? Это дает мне:
install4j: compilation failed. Reason: com.ejt.a.c.g: Failed to compile script
----------
In application "Installer", property "Help customizer script":
1. WARNING in /private/var/folders/n7/vjsf1vp56s13hzpgypthp2_h0000gp/T/script4119340027951579520.java.dir/com/install4j/script/I4jScript_Internal_1.java (at line *19)
private void eval(final com.install4j.api.context.InstallerContext context, final java.util.List options) throws Exception {
^^^^^^^^^^^^^^
List is a raw type. References to generic type List<E> should be parameterized
----------
In application "Installer", property "Help customizer script":
2. WARNING in /private/var/folders/n7/vjsf1vp56s13hzpgypthp2_h0000gp/T/script4119340027951579520.java.dir/com/install4j/script/I4jScript_Internal_1.java (at line 1)
if (Util.isLinux()) options.add(new String[] { "--skip-precheck", "Bypasses Installer precheck checks. Note this must be the *first* argument."});
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Type safety: The method add(Object) belongs to the raw type List. References to generic type List<E> should be parameterized
----------
In application "Installer", property "Help customizer script":
3. WARNING in /private/var/folders/n7/vjsf1vp56s13hzpgypthp2_h0000gp/T/script4119340027951579520.java.dir/com/install4j/script/I4jScript_Internal_1.java (at line *24)
eval((com.install4j.api.context.InstallerContext)parameters[0], (java.util.List)parameters[1]);
^^^^^^^^^^^^^^
List is a raw type. References to generic type List<E> should be parameterized
----------
----------
In screen "[Additional confirmations]", property "Pre-activation expression":
4. ERROR in /private/var/folders/n7/vjsf1vp56s13hzpgypthp2_h0000gp/T/script4119340027951579520.java.dir/com/install4j/script/I4jScript_Internal_35.java (at line 5)
Util.showMessage(InstallerContextConstants.KEY);
^^^^^^^^^^^^^^^^^^^^^^^^
KEY cannot be resolved or is not a field
----------
4 problems (1 error, 3 warnings)
Однако, если я использую любую константу строки install4j, она работает. http://resources.ej-technologies.com/install4j/help/javadoc/constant-values.html
Любые предложения о том, как это сделать?
У меня есть собственный код, как хорошо, что я хотел бы использовать '' Переменная 'KEY'''. Если я добавлю его на шаг «Ресурс» в качестве статического определения, могу ли я получить доступ к нему из пользовательского кода? – Dan
Является ли этот код в файлах классов, которые скомпилированы вне install4j? Затем вам придется добавлять определения во внешний файл класса. –