Запутался в терминологии. Среда разработки от marmalade не умеет настраивать SDK в проекте, она ориентируется на JAVA_HOME, и в частном случае мне нужно было значение JDK6. В то же время как основную JDK которую я использую — 8. Поэтому и решил сделать переключатель.
при запуске среды разработки вы всё равно запускаете некий exe-файл. Ничто не мешает положить рядом bat-файл, в котором написать:
set JAVA_HOME=MY_JAVA_VERSION_PATH
некий_файл.exe
и запускать уже не exe, а bat-файл
Учитывая, что ваш SDK на чём то базируется (возможно на Eclipse), то там может быть и вовсе уже лежать готовый bat-файл (в той же IntelliJ IDEA основной файл idea.bat, который запускается с помощью idea.exe), внутри которого происходит проверка переменной JAVA_HOME и её использование — тогда можно сразу в начало этого файла подсунуть нужное вам значение.
Лучше хранить такие вещи в настройках проекта (IDEA, Eclipse и т. д.). Просто переключатель кажется не очень гибким. Например, вы разрабатываете приложение на Java 1.7 и попутно библиотеку к этому приложению, которая должна работать в Java 1.5. В IDE они будут одновременно компилироваться каждая со своей версией. А как этого достичь с вашим переключателем? Настройка на уровне проекта позволяет не думать ни о каких переключателях, да и все участники проекта будут пользоваться одной и той же версией.
Абсолютно верно. Единственный случай, который я смог припомнить в своей практике — разрабатывал плагин для JIRA не очень свежей версии. Вот там dev kit при запуске проверял версию jre и отказывался запускаться на чем-либо кроме 1.6.
Может в силу того, что если у вас под разные приложения требуются разные версии Java, то менять надо не глобальное, а локальное окружение у каждого приложения?
Насколько я понимаю, все равно придется перезапускать консоль/браузер/etc., чтобы подхватить новые переменные окружения. Если мы говорим про консольный запуск, проще сделать несколько sh-скриптов с разным environment, несколько ярлыков для браузера для разных версий java, а по-хорошему, как написали выше, это конфигурируется в IDE.
Гаджет-переключатель между версиями Java