- Баллы
- 88
- Имя в Minecraft
- Natsu_Zirok
Никогда не думал, что библиотеки такие вредные бывают =\ Спасибо#include "jni_md.h"
На
#include "win32\jni_md.h"

Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Никогда не думал, что библиотеки такие вредные бывают =\ Спасибо#include "jni_md.h"
На
#include "win32\jni_md.h"

высокоуровневом языке C++ .
Запуск клиента игры с собственной реализацией Java.exe на низкоуровневом языке С/C++
перспектив у данного метода очень много, однако я не видел ни одного лаунчера его реализующего.
ШкальникЯзяк то высокоуровневый ... ASM - Это низкий уровень. JVM Код - это тоже низкий
MCLab - Первый который прийшел на голову. У них он уже давно. Гдето примерно 3 года как раз таки они уже используют JNI.
Хорошая тема , обесняет как для тупых. Это работает не только с С / С++ - Delphi, C#, и многие другие языки так же содержат JNI. Можно делать дофигища защит с помощу JNI, можно выполнять любой код Java только с лаунчера. Как по мне , имхо , это самый высокий уровень защиты какой только можно придумать. Ну только от печаль беда - и правда нету лаунчеров которые используют активно JNI как метод защити. Некоторые только немного , тот же MCLab, почти не юзает JNI.
Хорошая тема , спасибо афтору за то что и так знал , но он молодец , посторался.
что вам уже не так ?Шкальник
Во 1 прочитай что ты написал. Во 2 как mclab ? Если ты берёшь с них пример то ты рос на их проектах -_-. Хорошая защита c++.что вам уже не так ?
Парси json и будет универсальный запуск, как в моем труе лаунчере. В QT json парсится намного легче даже, чем в либе gson жабы.А можно код для версий 1.6.4+ ?
Это неимеет значение, если качать свою яву в заданную директорию. Ее качать и проверять все равно придется, от всяких УО через яву.Всем доброй ночи. Решение с использованием jvm.dll очень интересное. Есть только небольшое "но"..
На своей машине попробовал набрать следующее:
cd %JAVA_HOME%
ответом стало:
c:\Program Files\Java\jdk1.7.0_51>
Ну с этим все понятно, когда-то для экспериментов с Maven и прочим я добавлял эту переменную руками.
Решил поставить на ноутбук "чистые" ОС и яву и проверить. Сначала поставил Windows 7x64 и jdk 1.7, затем попробовал Windows 8x64 и jre 1.8.
В обоих случаях ответом на команду cd %JAVA_HOME% стало "Не удается найти указанный путь".
Или я чего то не понимаю, или переменную JAVA_HOME можно добавить только вручную? Дистрибутивы jdk/jre сами её не добавляют?
Если это так, то конструкция LoadLibrary(_T(JAVA_HOME) _T("\\bin\\server\\jvm.dll")) соответственно не будет работать, пока игрок сам не добавит переменную окружения?
Как быть в этом случае? Заранее спасибо.
Читать из реестра напрямую. Если пользователь своими кривыми руками не лезет куда не надо, то в 100% случаев там будет путь непосредственно к jvm.dll для текущей версии джавы соответствующей разрядности. Если же пользователь аутист и руками испортил запись, то достаточно проверить существование этой библиотеки по найденному пути, если её нет - вывести предупреждение, что предустановленная джава не найдена, с предложением ввести путь вручную. Или, как вариант, грузить в лаунчере свою джаву.Всем доброй ночи. Решение с использованием jvm.dll очень интересное. Есть только небольшое "но"..
На своей машине попробовал набрать следующее:
cd %JAVA_HOME%
ответом стало:
c:\Program Files\Java\jdk1.7.0_51>
Ну с этим все понятно, когда-то для экспериментов с Maven и прочим я добавлял эту переменную руками.
Решил поставить на ноутбук "чистые" ОС и яву и проверить. Сначала поставил Windows 7x64 и jdk 1.7, затем попробовал Windows 8x64 и jre 1.8.
В обоих случаях ответом на команду cd %JAVA_HOME% стало "Не удается найти указанный путь".
Или я чего то не понимаю, или переменную JAVA_HOME можно добавить только вручную? Дистрибутивы jdk/jre сами её не добавляют?
Если это так, то конструкция LoadLibrary(_T(JAVA_HOME) _T("\\bin\\server\\jvm.dll")) соответственно не будет работать, пока игрок сам не добавит переменную окружения?
Как быть в этом случае? Заранее спасибо.
Да в любом случае без своей явы мало пользы от лаунчера не на яве. Ибо можно будет юзать всякие УО или даже вообще пересобрать под себя jvm.dll.Читать из реестра напрямую. Если пользователь своими кривыми руками не лезет куда не надо, то в 100% случаев там будет путь непосредственно к jvm.dll для текущей версии джавы соответствующей разрядности. Если же пользователь аутист и руками испортил запись, то достаточно проверить существование этой библиотеки по найденному пути, если её нет - вывести предупреждение, что предустановленная джава не найдена, с предложением ввести путь вручную. Или, как вариант, грузить в лаунчере свою джаву.
И как совет - меньше пользуйся сторонними переменными окружения. С достаточной уверенностью можно доверять только системным переменным, а в идеале - брать системные пути через GetSpecialFolderPath.
Простите? MClab и JNI? А стримкрафт мклаба? просто помойму TheKoljas слил лаунчер...Язяк то высокоуровневый ... ASM - Это низкий уровень. JVM Код - это тоже низкий
MCLab - Первый который прийшел на голову. У них он уже давно. Гдето примерно 3 года как раз таки они уже используют JNI.
Хорошая тема , обесняет как для тупых. Это работает не только с С / С++ - Delphi, C#, и многие другие языки так же содержат JNI. Можно делать дофигища защит с помощу JNI, можно выполнять любой код Java только с лаунчера. Как по мне , имхо , это самый высокий уровень защиты какой только можно придумать. Ну только от печаль беда - и правда нету лаунчеров которые используют активно JNI как метод защити. Некоторые только немного , тот же MCLab, почти не юзает JNI.
Хорошая тема , спасибо афтору за то что и так знал , но он молодец , посторался.
(Map)newGson().fromJson((String)optionSet.valueOf((OptionSpec)argumentAcceptingOptionSpec16), a)).entrySet()){
String)argumentAcceptingOptionSpec10.value(optionSet);String string6 = optionSet.has((OptionSpec)argumentAcceptingOptionSpec17)?(String)argumentAcceptingOptionSpec17.value(optionSet):null;