Kron4ek/minecraft-vortex-launcher

No Java installed [OR] Custom Java Directory | Windows

b5414 opened this issue · 3 comments

b5414 commented

Насколько я вижу, в функции findJava(), жава ищется в директории таким образом:

  • ExamineDirectory(#PB_Any, programFilesDir(i) + "Java", "*"), т.е. if "C:\Program Files (x86)\Java\*"
    но, у инстолятора жава (win) - есть опция: "выбрать кастомную директорию"

Так вот, лично я её пользую каждую установку, например можно закинуть java на 2й ссд, либо просто в другую директорию (пример ниже) как это сделал я, следовательно лаунчер напишет: жабы нет


Да, я прекрасно понимаю, что искать по всем папка жаву - не выход,
[и я догадываюсь, что @Kron4ek больше в линукс, чем в виндовс,]
но, у шинды(как и вроде у линуха) есть замечательные якоря/переменные среды/environment variables, например %appdata%...


В общем, я потестил GetEnvironmentVariable("Path") - работает нормально, выдает такую строку:

  • C:\Program Files (x86)\PureBasic\Compilers\;C:\Program Files\Java64bit\bin;C:\Program Files (x86)\Java32bit\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;
  • аутпут выше - без_изменений/валидный == можно использовать для тестов
  • так же, строка может заканчиваться как на ...bin\;, так и на ...bin;, семиколон есть всегда

Отсюда уже - можно получить валидный путь к жаве 🙂

Не знаю, будут ли я это реализовывать. Но я приму к сведению, что Java при установке прописывает себя в Path, спасибо за информацию. И да, на Linux тоже есть PATH и прочие переменные окружения, но на винде как-то не подумал про это.

Вообще-то если устанавливать обычную java с сайта Oracle то она ничего не прописывает в path, если ставить jdk 16, 17 и т.п., прописывают только инсталяторы Adoptium или bellsoft, вы могли конечно руками прописать path, но получается что такое решение тоже не универсально.. поэтому при любых кастомах я думаю лучше использовать именно функцию указания своего пути в настройках. В своем форке я сделал по-тупому и просто ищу дополнительно папки Adoptium и bellsoft если настройки заданы по умолчанию.

b5414 commented

@jedai86 да, я указал пути потому-что думал, что так лаунчер и работает, но нет;

Всё-таки указывается, но не каждый инсталл, а конкретно C:\Program Files (x86)\Common Files\Oracle\Java\javapath;, тут лежит "какая-то жаба" (вроде бы альяс)

> "C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe" -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
< size: 271 КБ (278 296 байт)
> "C:\Program Files\Java64bit\bin\java.exe" -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
< size: 271 КБ (278 296 байт)

на всякий случай - java32:
< size: 241 КБ (247 576 байт)