1

bukkit プラグインで Joda-Time を使用しようとしていますが、ClassNotFoundException と NoClassDefFoundError が発生します。

私はEclipseを使用しており、それをビルドパスに追加し、jarファイルのMANIFESTでClass-Path変数を変更しました(そして、jarファイルの外部のlibフォルダーにjarファイルを追加しました)。私のjarファイル内のjoda-time jarファイル。

ですから、もう少し明確にしてください... ClassNotFoundException が表示されます。ファイルを手動で jar に追加すると、NoClassDefFoundError が表示されます。

私は自分のプロジェクトを(Eclipse経由で)Mavenに変換しようとしましたが、pom.xmlへの依存関係としてjoda-timeを追加しましたが、それもうまくいかないようです(何か間違っているのかもしれません)。

さらに情報が必要な場合は、お問い合わせください。他に何を含めるかわかりません。

あなたが私に与えることができるどんな助けにも感謝します.

java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant
    at com.**********.plugin.UMSBase.registerEvents(UMSBase.java:46)
    at com.***********.plugin.UMSBase.onEnable(UMSBase.java:22)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
    at org.bukkit.craftbukkit.v1_5_R2.CraftServer.loadPlugin(CraftServer.java:282)
    at org.bukkit.craftbukkit.v1_5_R2.CraftServer.enablePlugins(CraftServer.java:264)
    at net.minecraft.server.v1_5_R2.MinecraftServer.j(MinecraftServer.java:303)
    at net.minecraft.server.v1_5_R2.MinecraftServer.e(MinecraftServer.java:282)
    at net.minecraft.server.v1_5_R2.MinecraftServer.a(MinecraftServer.java:242)
    at net.minecraft.server.v1_5_R2.DedicatedServer.init(DedicatedServer.java:150)
    at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:381)
    at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 13 more
4

2 に答える 2

0

Joda Time の jar ファイルは、craftbukkit.jar と同じフォルダーに入れましたか。これで問題が解決するかどうかはわかりません。

于 2013-07-07T19:59:33.947 に答える
0

Joda Time をプラグイン jar に挿入するビルド プラグイン maven-shade-plugin に追加するだけで、実行時にクラスが検出されます。

pom.xml:

<build>
   <plugins>

      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-shade-plugin</artifactId>
         <version>1.7</version>
         <executions>
            <execution>
               <phase>package</phase>
               <goals>
                  <goal>shade</goal>
               </goals>
               <configuration>
                  <shadedArtifactAttached>true</shadedArtifactAttached>
                  <shadedClassifierName>jar-with-dependencies</shadedClassifierName>
               </configuration>
            </execution>
         </executions>
      </plugin>

   </plugins>
</build>

次に、name-with-dependencies.jar をプラグイン ファイルとして使用します。

于 2015-12-16T17:18:05.310 に答える