【发布时间】:2018-12-09 19:28:15
【问题描述】:
首先感谢您花时间帮助我。我的名字是 Matt,我一直在尝试学习 java,以及创建 mc 插件。我一直在尝试制作一个包含深度学习的插口插件(用于 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、生命周期、包)并尝试插件文件夹中的 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] 包括 io.netty:netty:jar:3.10.4.Final 在阴影 jar 中。 [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 dependency:tree -Ddetail=true 和上面的输出。 [警告] 见http://maven.apache.org/plugins/maven-shade-plugin/ [INFO] 附加阴影伪影。 [信息] --------------------------------------------- ------------------------- [信息] 构建成功 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:01:44 分钟 [INFO] 完成时间:2018-12-10T21:13:33-05:00 [INFO] 最终内存:43M/447M [信息] --------------------------------------------- --------------------------
一开始还有一点,但是这里放不下。
【问题讨论】:
标签: java deeplearning4j