Как можно добавить библиотеку?

Версия Minecraft
1.12.2
Здравствуйте, я хотел добавить библиотеку httpmime-4.3, в Ecplipse все работало, но в обычном майнкрафте с Forge уже крашило майн вроде как с отсутствием этой библиотеки. Куда мне её нужно закинуть, чтобы она работала?
 
Краш-лог
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from TestVV (testvv)
Caused by: java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
Краш-лог:
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from TestVV (testvv)
Caused by: java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
Решение
А стоп. у тебя либа орг.апач? тогда тебе надо relocate делать
Как пример:
Gradle (Groovy):
shadowJar{
    dependencies {
        include(dependency('org.apache.commons:commons-collections4:.*'))
        include(dependency('org.slf4j:slf4j-api:.*'))
    }
    relocate "org.apache.commons.collections4", "ru.will0376.repack.org.apache.commons.collections4"
    relocate "org.slf4j", "ru.will0376.repack.org.slf4j"
}
reobf {
    shadowJar {} // Reobfuscate the shadowed JAR 
}
Forge исключает либы с пакетами org.apache по какой-то причине. Сам на это напоролся
178
4
42
Как было сказано выше, в mods надо закинуть джарник с либой. И еще нужно прописать эту либу в dependencies в аннотации Mod, чтобы она загружалась раньше твоего мода. Если и это не поможет(ну вдруг), добавь заглавную A(английскую) в начало имени джарника с либой.
 
7,099
324
1,510
Gradle поддерживает папку ./libs/, в которую можно закидывать все пользовательские либы для проекта. Потом их грузить на отдельной игре, без среды, можно разными способами. Закинуть в папку mods/1.12.2 также, как CCL, или при помощи плагина shadow при сборке инклюдить эти либы прямо в мод
 
Ну я закинул библиотеку в mods/1.12.2/
И всё равно этот же краш

Код:
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from testmods (testmods)
Caused by: java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
    at com.testmods.ClientProxy.preinit(ClientProxy.java:12)
    at com.testmods.main.preinit(main.java:17)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637)
    at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219)
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136)
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:627)
    at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)
    at net.minecraft.client.Minecraft.init(Minecraft.java:467)
    at net.minecraft.client.Minecraft.run(Minecraft.java:4431)
    at net.minecraft.client.main.Main.main(SourceFile:123)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.launcher.components.Game$4.run(Game.java:314)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.http.entity.mime.content.ContentBody
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:106)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 48 more
 
7,099
324
1,510
Чекнул CCL - эта либа выполнена в миде мода...
Вариант с включением содержимого либы в твой мод не подходит?
 
Gradle поддерживает папку ./libs/, в которую можно закидывать все пользовательские либы для проекта. Потом их грузить на отдельной игре, без среды, можно разными способами. Закинуть в папку mods/1.12.2 также, как CCL, или при помощи плагина shadow при сборке инклюдить эти либы прямо в мод
Shadow соединяет не нужную библиотеку, как сделать так, чтобы он её не соединял?
 
7,099
324
1,510
Че-то вроде этого:
Java:
apply plugin: 'com.github.johnrengelman.shadow'

shadowJar {
    classifier = ''

    dependencies {
        include(dependency("com.github.hohserg1:HookLib:$hooklibVersion")) //инклюдит только хуклибу
    }
}
Собирать так:
gradle build shadowJar
 
Сверху