Я пытаюсь указать альтернативный jre (у меня по умолчанию 1.6, и мне нужно запускать с jdk 1.4.2) в Eclipse для приложения, которое я буду запускать из eclipse. Я не уверен, правильно ли я поступаю в следующем коде:
Path jreContainerPath = new Path("/usr/lib/jvm/j2sdk1.4.2_18/");
IVMInstall jre = JavaRuntime.getVMInstall(jreContainerPath);
workingCopy.setAttribute(IJavaLaunchConfigurationConstants. ATTR_JRE_CONTAINER_PATH, jre.getName());
Однако jre IVMInstall имеет значение null. Я думаю, что неправильно указываю путь к контейнеру, но я не уверен. И я должен сделать это в программе. Я был бы с радостью признателен за любую помощь в этом вопросе. Заранее спасибо.




Вы обязательно хотите указать это в самой программе? В противном случае вы можете просто перейти к пути сборки проекта и указать альтернативный jre, который вы хотите использовать. (щелкните правой кнопкой мыши проект -> путь сборки java -> выберите jre -> щелкните редактировать -> выберите там альтернативный jre)
getVMInstall возвращает JREContainerInitializer.resolveVM(jreContainerPath), который, в свою очередь, вызывает getExecutionEnvironmentId().
Второй сегмент пути используется как идентификатор JVM (см. getVMName() того же класса JREContainerInitializer)
Может быть, это означает, что ожидаемый путь не буквальный, а такой как '/jvm/j2sdk1.4.2_18', где 'j2sdk1.4.2_18' имя одной из установленных JRE вашей конфигурации eclipse.
Еще немного проанализировав исходные классы, вы сможете точно понять, чего ожидает этот метод.