-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Данная тема создана для тех кто не знал.
Не пишите комментарии типо: /del я это уже знал
Наверняка вы видели в папке natives такой файл lwjgl.dll. Это native библиотека написаная для игр (Почитать о ней вы можете здесь:
1. Создайте новый проект в вашей среде разработки.
2. Замените:
на:
3. Зайдите в terminal (на windows это консоль) и пропишите данные команды:
cd директория до вашего проекта который вы создали
javac -h . Класс который хотите сделать нативным (эту команду напишите обязательно с точкой перед директорией)
4. После выполнения данных команд у вас в проекте появится файл с расширением .h с которым нужно выполнить данные процедуры:
Откройте его в любом редакторе (можно в блокноте) и скопируйте код похожий на этот:
Создайте файл с таким же названием как и у .h но с расширением .cpp и вставьте тот код который вы скопировали
Сделайте такую структуру файла:
Обратите внимание на первую строку: #include "вставьте название .h файла с расширением".
5. Зайдите обратно в terminal/cmd и впишите команды:
g++ -c -I"C:\Program Files\Java\jdk-12.0.1\include" -I"C:\Program Files\Java\jdk-12.0.1\include\win32" native_Main.cpp -o native.o
g++ -shared -o native.dll native.o -Wl,--add-stdcall-alias
Убедитесь что у вас все пути правильны.
6. Добавьте в свой Main класс:
7. Создайте директорию в своём проекте: /native/lib/ и переместите native.dll в этот путь.
Готово! Запускайте программу и радуйтесь.
P.S. Если что-то не получилось не пишите мне. Я вам смогу помочь только если у вас Mac.
Не пишите комментарии типо: /del я это уже знал
Наверняка вы видели в папке natives такой файл lwjgl.dll. Это native библиотека написаная для игр (Почитать о ней вы можете здесь:
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Так вот, вы можете создать свою библиотеку или защитить проект.1. Создайте новый проект в вашей среде разработки.
2. Замените:
Java:
public static void main(String[] args) {}
Java:
public static native void main(String[] args);
cd директория до вашего проекта который вы создали
javac -h . Класс который хотите сделать нативным (эту команду напишите обязательно с точкой перед директорией)
4. После выполнения данных команд у вас в проекте появится файл с расширением .h с которым нужно выполнить данные процедуры:
Откройте его в любом редакторе (можно в блокноте) и скопируйте код похожий на этот:
JNIEXPORT void JNICALL Java_native_Main_main(JNIEnv *, jclass, jobjectArray)
Создайте файл с таким же названием как и у .h но с расширением .cpp и вставьте тот код который вы скопировали
Сделайте такую структуру файла:
C++:
#include "вставьте название .h файла с расширением"
#include <iostream>
using namespace std;
// Замените заголовок на тот который скопировали ранее
JNIEXPORT void JNICALL Java_native_Main_main(JNIEnv *, jclass, jobjectArray) {
cout << "Hello"
}
5. Зайдите обратно в terminal/cmd и впишите команды:
g++ -c -I"C:\Program Files\Java\jdk-12.0.1\include" -I"C:\Program Files\Java\jdk-12.0.1\include\win32" native_Main.cpp -o native.o
g++ -shared -o native.dll native.o -Wl,--add-stdcall-alias
Убедитесь что у вас все пути правильны.
6. Добавьте в свой Main класс:
Java:
static {
String filePath = null;
if (System.getProperty("os.arch").contains("64")) {
filePath = "/native/lib/native.dll";
}
if (filePath != null) {
InputStream resourceFilePath = Main.class.getResourceAsStream(filePath);
if (resourceFilePath != null) {
File tempFile;
try {
tempFile = File.createTempFile("lib", null);
tempFile.deleteOnExit();
if (!tempFile.exists()) {
throw new IOException();
}
} catch (IOException e) {
throw new UnsatisfiedLinkError("Failed to create temp file");
}
byte[] buffer = new byte[2048];
try (InputStream inputStream = resourceFilePath;
FileOutputStream outputStream = new FileOutputStream(tempFile)) {
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
throw new UnsatisfiedLinkError("Failed to copy file: " + e.getMessage());
}
System.load(tempFile.getAbsolutePath());
}
} else {
System.out.println("Your system is not suitable.");
}
}
Готово! Запускайте программу и радуйтесь.
P.S. Если что-то не получилось не пишите мне. Я вам смогу помочь только если у вас Mac.