首先感谢您抽出宝贵的时间来帮助我。我叫Matt,我一直在尝试学习Java,以及创建mc插件。我一直在尝试制作一个具有深度学习功能的spigot插件(用于MC)。我正在尝试使用deeplearning4j。我知道我可以在spigotmc网站上提出这个问题,但是我认为它们不会有太大帮助,因为从spigotmc的先前帖子中可以看出,他们似乎并不了解很多关于dl4j的知识。所以到目前为止,我要做的是使用dl4j网站上的快速入门指南来设置maven和Intellij,并在intellij中创建一个maven项目,并为deeplearning4j添加依赖项,这是我的POM.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.mateo.lack</groupId>
<artifactId>SNAC5</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<properties>
<dl4j.version>1.0.0-beta3</dl4j.version>
<nd4j.version>1.0.0-beta3</nd4j.version>
<logback.version>1.2.3</logback.version>
<java.version>1.8</java.version>
<maven-shade-plugin.version>2.4.3</maven-shade-plugin.version>
</properties>
<dependencies>
<!--Spigot API-->
<dependency>
<groupId>com.gmail.mateo.lack</groupId>
<artifactId>spigot</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/Users/mlavatar/Downloads/spigot-1.8.8-R0.1-SNAPSHOT-latest.jar</systemPath>
</dependency>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native-platform</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-core</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.datavec</groupId>
<artifactId>datavec-hadoop</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.datavec</groupId>
<artifactId>datavec-api</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>com.gmail.mateo.lack</groupId>
<artifactId>ShatteredStaff</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/Users/mlavatar/Desktop/MyPlugins/ShatteredStaff.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Maven compiler plugin: compile for Java 8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!--
Maven shade plugin configuration: this is required so that if you build a single JAR file (an "uber-jar")
it will contain all the required native libraries, and the backends will work correctly.
Used for example when running the following commants
mvn package
cd target
java -cp deeplearning4j-examples-1.0.0-beta-bin.jar org.deeplearning4j.LenetMnistExample
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>bin</shadedClassifierName>
<createDependencyReducedPom>true</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>org/datanucleus/**</exclude>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>reference.conf</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
但是,问题是,一旦我将其导出(通过向右,maven,生命周期,包)导出,然后尝试在plugins文件夹中的jar上,我将收到此错误:
09.12 13:58:02 [Server] ERROR Could not load 'plugins/SAC.jar' in folder 'plugins'
09.12 13:58:02 [Server] INFO org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: org/nd4j/linalg/schedule/ISchedule
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:331) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:254) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:293) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:202) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
09.12 13:58:02 [Server] INFO Caused by: java.lang.NoClassDefFoundError: org/nd4j/linalg/schedule/ISchedule
09.12 13:58:02 [Server] INFO at SAC.sac.<init>(sac.java:48) ~[?:?]
09.12 13:58:02 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:77) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO ... 6 more
09.12 13:58:02 [Server] INFO Caused by: java.lang.ClassNotFoundException: org.nd4j.linalg.schedule.ISchedule
09.12 13:58:02 [Server] INFO at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:102) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:87) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at SAC.sac.<init>(sac.java:48) ~[?:?]
09.12 13:58:02 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_191]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:77) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 13:58:02 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
我尝试搜索此错误,但没有找到有用的信息,我在该网站上搜索了答案,其中大多数使我回到了我起步时所遵循的快速入门指南。帮助将不胜感激。
编辑:使用Uberjar后,出现此错误:
ERROR Could not load 'plugins/SAC.jar' in folder 'plugins'
09.12 18:17:31 [Server] INFO org.bukkit.plugin.InvalidPluginException: java.lang.ExceptionInInitializerError
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:331) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:254) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:293) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:202) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) [paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
09.12 18:17:31 [Server] INFO Caused by: java.lang.ExceptionInInitializerError
09.12 18:17:31 [Server] INFO at org.deeplearning4j.nn.conf.NeuralNetConfiguration$Builder.seed(NeuralNetConfiguration.java:683) ~[?:?]
09.12 18:17:31 [Server] INFO at KillAura.kMain.<init>(kMain.java:118) ~[?:?]
09.12 18:17:31 [Server] INFO at SAC.sac.<init>(sac.java:48) ~[?:?]
09.12 18:17:31 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:77) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO ... 6 more
09.12 18:17:31 [Server] INFO Caused by: java.lang.RuntimeException: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: Please ensure that you have an nd4j backend on your classpath. Please see: http://nd4j.org/getstarted.html
09.12 18:17:31 [Server] INFO at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:5484) ~[?:?]
09.12 18:17:31 [Server] INFO at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:215) ~[?:?]
09.12 18:17:31 [Server] INFO at org.deeplearning4j.nn.conf.NeuralNetConfiguration$Builder.seed(NeuralNetConfiguration.java:683) ~[?:?]
09.12 18:17:31 [Server] INFO at KillAura.kMain.<init>(kMain.java:118) ~[?:?]
09.12 18:17:31 [Server] INFO at SAC.sac.<init>(sac.java:48) ~[?:?]
09.12 18:17:31 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:77) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO ... 6 more
09.12 18:17:31 [Server] INFO Caused by: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: Please ensure that you have an nd4j backend on your classpath. Please see: http://nd4j.org/getstarted.html
09.12 18:17:31 [Server] INFO at org.nd4j.linalg.factory.Nd4jBackend.load(Nd4jBackend.java:213) ~[?:?]
09.12 18:17:31 [Server] INFO at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:5481) ~[?:?]
09.12 18:17:31 [Server] INFO at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:215) ~[?:?]
09.12 18:17:31 [Server] INFO at org.deeplearning4j.nn.conf.NeuralNetConfiguration$Builder.seed(NeuralNetConfiguration.java:683) ~[?:?]
09.12 18:17:31 [Server] INFO at KillAura.kMain.<init>(kMain.java:118) ~[?:?]
09.12 18:17:31 [Server] INFO at SAC.sac.<init>(sac.java:48) ~[?:?]
09.12 18:17:31 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_191]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:77) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d"]
09.12 18:17:31 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[paper-1.8.8.jar:git-PaperSpigot-"4c7641d
编辑:构建后登录
x86_64:3.4.3-1.4.3在阴影罐中。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica-platform:jar:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:android-arm:1.76.0-1.4.3。 [INFO]在阴影jar中包含org.bytedeco.javacpp-presets:leptonica:jar:android-arm64:1.76.0-1.4.3。 [INFO]在阴影jar中包含org.bytedeco.javacpp-presets:leptonica:jar:android-x86:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:android-x86_64:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:linux-x86:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:linux-x86_64:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:linux-armhf:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:linux-ppc64le:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:macosx-x86_64:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:windows-x86:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.bytedeco.javacpp-presets:leptonica:jar:windows-x86_64:1.76.0-1.4.3。 [INFO]在阴影jar中包括org.deeplearning4j:deeplearning4j-ui-components:jar:1.0.0-beta3。 [INFO]在阴影jar中包括org.datavec:datavec-hadoop:jar:1.0.0-beta3。 [INFO]在阴影jar中包括com.sun.xml.bind:jaxb-core:jar:2.2.11。 [INFO]在阴影jar中包括com.sun.xml.bind:jaxb-impl:jar:2.2.11。 [INFO]在阴影jar中包括io.netty:netty:jar:3.10.4.Final。 [INFO]在带阴影的jar中包括org.apache.zookeeper:zookeeper:jar:3.4.6。 [INFO]在阴影jar中包括jline:jline:jar:0.9.94。 [INFO]在阴影jar中包括junit:junit:jar:3.8.1。 [INFO]在阴影jar中包含org.datavec:datavec-api:jar:1.0.0-beta3。 [INFO]在阴影jar中包含org.jetbrains:annotations:jar:13.0。 [INFO]在阴影jar中包括commons-codec:commons-codec:jar:1.10。 [INFO]在阴影jar中包括joda-time:joda-time:jar:2.2。 [INFO]在有阴影的jar中包括org.yaml:snakeyaml:jar:1.12。 [INFO]在有阴影的jar中包括org.freemarker:freemarker:jar:2.3.23。 [INFO]在阴影jar中包括org.nd4j:nd4j-common:jar:1.0.0-beta3。 [INFO]在有阴影的jar中包含com.clearspring.analytics:stream:jar:2.7.0。 [INFO]在阴影jar中包括net.sf.opencsv:opencsv:jar:2.3。 [INFO]在阴影jar中包括com.tdunning:t-digest:jar:3.2。 [INFO]在阴影jar中包含it.unimi.dsi:fastutil:jar:6.5.7。 [INFO]在有阴影的jar中包括ch.qos.logback:logback-classic:jar:1.2.3。 [INFO]在有阴影的jar中包括ch.qos.logback:logback-core:jar:1.2.3。 [警告] nd4j-base64-1.0.0-beta3.jar,nd4j-api-1.0.0-beta3.jar定义了1个重叠的类: [警告]-org.nd4j.serde.base64.Nd4jBase64 [警告] maven-shade-plugin已检测到某些类文件 [警告]存在于两个或多个JAR中。发生这种情况时,只有一个 [警告]将该类的单个版本复制到uber jar。 [警告]通常这不是有害的,您可以跳过这些警告, [警告]否则请尝试根据以下情况手动排除工件 [警告] mvn依赖项:tree -Ddetail = true以及以上输出。 [警告]参见http://maven.apache.org/plugins/maven-shade-plugin/ [INFO]附加阴影伪影。 [INFO] ----------------------------------------------- ------------------------- [INFO]建立成功 [INFO] ----------------------------------------------- ------------------------- [INFO]总时间:01:44分钟 [INFO]完成于:2018-12-10T21:13:33-05:00 [INFO]最终记忆:43M / 447M [INFO] ----------------------------------------------- -------------------------
一开始还有更多,但我不能在这里放进去。
答案 0 :(得分:0)
创建一个uberjar并将其用于您的插件。使用Maven Shade插件执行以下操作: https://github.com/deeplearning4j/dl4j-examples/blob/master/standalone-sample-project/pom.xml#L91