Open b5414 opened 2 years ago
Не знаю, будут ли я это реализовывать. Но я приму к сведению, что Java при установке прописывает себя в Path, спасибо за информацию. И да, на Linux тоже есть PATH и прочие переменные окружения, но на винде как-то не подумал про это.
Вообще-то если устанавливать обычную java с сайта Oracle то она ничего не прописывает в path, если ставить jdk 16, 17 и т.п., прописывают только инсталяторы Adoptium или bellsoft, вы могли конечно руками прописать path, но получается что такое решение тоже не универсально.. поэтому при любых кастомах я думаю лучше использовать именно функцию указания своего пути в настройках. В своем форке я сделал по-тупому и просто ищу дополнительно папки Adoptium и bellsoft если настройки заданы по умолчанию.
@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 байт)
Насколько я вижу, в функции
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;
, семиколон есть всегдаОтсюда уже - можно получить валидный путь к жаве 🙂