【解決】簡単なPluginでエラーを吐く

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.252566)

【解決】簡単なPluginでエラーを吐く

投稿記事by せがれ » 2015年10月31日(土) 19:38

作成を始めたばかりで、
「読み込み完了!」的なものを作っていたら、
コード: 全て選択
[19:28:50] [Server thread/ERROR]: Could not load 'plugins\TestPlugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: my/test/testplugin/TestPlugin : Unsupported major.minor version 52.0
   at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:341) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:263) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugins(CraftServer.java:369) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:864) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.Bukkit.reload(Bukkit.java:301) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
Caused by: java.lang.UnsupportedClassVersionError: my/test/testplugin/TestPlugin : Unsupported major.minor version 52.0
   at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.7.0_80]
   at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.7.0_80]
   at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_80]
   at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.7.0_80]
   at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_80]
   at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_80]
   at java.lang.Class.forName0(Native Method) ~[?:1.7.0_80]
   at java.lang.Class.forName(Unknown Source) ~[?:1.7.0_80]
   at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   ... 14 more

と出ました。
ちなみにソースコードはこちらです。
コード: 全て選択
package my.test.testplugin;

import org.bukkit.plugin.java.JavaPlugin;

public class TestPlugin extends JavaPlugin{

   @Override
   public void onEnable(){
      this.getLogger().info("Pluginを読み込みました。");
   }

   @Override
   public void onDisable(){
      this.getLogger().info("Pluginの読み込みが終了しました。これが読み込み中に表示されている場合、Pluginが正しく読み込まれなかった可能性があります、");

   }
}

Eclipseではエラーは表示されませんでした。
どこがいけないのか教えていただければ幸いです。
最後に編集したユーザー せがれ [ 2015年11月01日(日) 13:58 ], 累計 1 回
Introとか作ってます。
チャンネル
黒歴史は忘れてください(sedmaruti,sedmulti時代)。
鯖立てようと奮闘(笑)しています。
アバター
せがれ
ID:4bc63b71
木を殴ってる
 
記事: 20
登録日時: 2015年9月25日(金) 21:31

  • (PostNo.252578)

Re: 簡単なPluginでエラーを吐く

投稿記事by King(qpwakaba) » 2015年10月31日(土) 20:51

sedmaruti099811 さんが書きました:作成を始めたばかりで、
「読み込み完了!」的なものを作っていたら、
コード: 全て選択
[19:28:50] [Server thread/ERROR]: Could not load 'plugins\TestPlugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: my/test/testplugin/TestPlugin : Unsupported major.minor version 52.0
   at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:341) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:263) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugins(CraftServer.java:369) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:864) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.Bukkit.reload(Bukkit.java:301) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
Caused by: java.lang.UnsupportedClassVersionError: my/test/testplugin/TestPlugin : Unsupported major.minor version 52.0
   at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.7.0_80]
   at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.7.0_80]
   at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_80]
   at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.7.0_80]
   at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_80]
   at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_80]
   at java.lang.Class.forName0(Native Method) ~[?:1.7.0_80]
   at java.lang.Class.forName(Unknown Source) ~[?:1.7.0_80]
   at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   ... 14 more

と出ました。


UnsupportedClassVersionError
これはコンパイルに使用したJDKのバージョンが 実行時のJVMよりも高いバージョンのときに発生するものです。
Javaのバージョンが明記されていないので判断できませんが、おそらく JVMは1.7、JDKは1.8 かと思われます。

要するに、サポートされていないバージョンのファイルを読み込ませた→ サポートしてないから読み込めないぜ って感じです。

JVMのバージョンを最新版にするか コンパイルする際の対象バージョンを1.7などに下げることで解決できるかと思います。
(もちろん対象バージョン以降実装された機能は使えませんのでご注意を)

sedmaruti099811 さんが書きました:Eclipseではエラーは表示されませんでした。


実行時エラーとコンパイルエラーの違いについて調べてみるといいです。この違いが分かっていないと今後プログラミングするうえでいろいろと厄介になってくるので勉強したほうが後々楽になりますよー
以下サイン
調べて見つからないことを質問して、「そのくらい調べろ」と言われたら それは調べが足りないとき。

投稿画面のBBコード挿入ボタン を追加するユーザースクリプト作りました。良かったらどうぞ。
https://greasyfork.org/ja/scripts/18657
最大描画距離を64チャンクまで伸ばすMod作ってます。
viewtopic.php?t=30697
アバター
King(qpwakaba)
ID:cfd14b6d
ダイヤモンド掘り
 
記事: 823
登録日時: 2013年3月26日(火) 10:25

  • (PostNo.252579)

Re: 簡単なPluginでエラーを吐く

投稿記事by King(qpwakaba) » 2015年10月31日(土) 20:54

ちなみにですが、onDisableは読み込まれなかったとき、ではなく プラグインが無効になった時 が正しいですね。
onEnableも正確に言うと 読み込まれたときではなく 有効になった時。
読み込まれたとき は onLoad(だったっけ? 使ったことないからうろ覚え) です。

またパッケージ名は他人と絶対にイイスギタ被らないものを使用すべきです。
今回はテストプラグインなので問題なさそうですが、 実際に稼働させるサーバーで動かすプラグインを作るときには、
my.test のようなパッケージ名ではなく、メールアドレスやドメインからパッケージ名を作ったほうがいいですね。
以下サイン
調べて見つからないことを質問して、「そのくらい調べろ」と言われたら それは調べが足りないとき。

投稿画面のBBコード挿入ボタン を追加するユーザースクリプト作りました。良かったらどうぞ。
https://greasyfork.org/ja/scripts/18657
最大描画距離を64チャンクまで伸ばすMod作ってます。
viewtopic.php?t=30697
アバター
King(qpwakaba)
ID:cfd14b6d
ダイヤモンド掘り
 
記事: 823
登録日時: 2013年3月26日(火) 10:25

  • (PostNo.252642)

Re: 簡単なPluginでエラーを吐く

投稿記事by せがれ » 2015年11月01日(日) 13:31

King(qpwakaba) さんが書きました:
sedmaruti099811 さんが書きました:作成を始めたばかりで、
「読み込み完了!」的なものを作っていたら、
コード: 全て選択
[19:28:50] [Server thread/ERROR]: Could not load 'plugins\TestPlugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: my/test/testplugin/TestPlugin : Unsupported major.minor version 52.0
   at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:341) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:263) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugins(CraftServer.java:369) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:864) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.Bukkit.reload(Bukkit.java:301) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
Caused by: java.lang.UnsupportedClassVersionError: my/test/testplugin/TestPlugin : Unsupported major.minor version 52.0
   at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.7.0_80]
   at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.7.0_80]
   at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.7.0_80]
   at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_80]
   at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.7.0_80]
   at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_80]
   at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_80]
   at java.lang.Class.forName0(Native Method) ~[?:1.7.0_80]
   at java.lang.Class.forName(Unknown Source) ~[?:1.7.0_80]
   at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot-1.7.10-R0.1-SNAPSHOTBuild1646.jar:git-Spigot-1646]
   ... 14 more

と出ました。


UnsupportedClassVersionError
これはコンパイルに使用したJDKのバージョンが 実行時のJVMよりも高いバージョンのときに発生するものです。
Javaのバージョンが明記されていないので判断できませんが、おそらく JVMは1.7、JDKは1.8 かと思われます。

要するに、サポートされていないバージョンのファイルを読み込ませた→ サポートしてないから読み込めないぜ って感じです。

JVMのバージョンを最新版にするか コンパイルする際の対象バージョンを1.7などに下げることで解決できるかと思います。
(もちろん対象バージョン以降実装された機能は使えませんのでご注意を)

sedmaruti099811 さんが書きました:Eclipseではエラーは表示されませんでした。


実行時エラーとコンパイルエラーの違いについて調べてみるといいです。この違いが分かっていないと今後プログラミングするうえでいろいろと厄介になってくるので勉強したほうが後々楽になりますよー

ちなみにですが、onDisableは読み込まれなかったとき、ではなく プラグインが無効になった時 が正しいですね。
onEnableも正確に言うと 読み込まれたときではなく 有効になった時。
読み込まれたとき は onLoad(だったっけ? 使ったことないからうろ覚え) です。

またパッケージ名は他人と絶対にイイスギタ被らないものを使用すべきです。
今回はテストプラグインなので問題なさそうですが、 実際に稼働させるサーバーで動かすプラグインを作るときには、
my.test のようなパッケージ名ではなく、メールアドレスやドメインからパッケージ名を作ったほうがいいですね。


ご返信ありがとうございます!
確かに、PluginのJavaのバージョンが、8になっていました。やっぱプログラミングは俺には無理なのかな...
一応、PluginのJavaのバージョンを、7に変えてもできませんでした。
今度はJavaを最初から7にしてみて試してみたいと思います。
Introとか作ってます。
チャンネル
黒歴史は忘れてください(sedmaruti,sedmulti時代)。
鯖立てようと奮闘(笑)しています。
アバター
せがれ
ID:4bc63b71
木を殴ってる
 
記事: 20
登録日時: 2015年9月25日(金) 21:31

  • (PostNo.252648)

Re: 【解決】簡単なPluginでエラーを吐く

投稿記事by せがれ » 2015年11月01日(日) 14:00

できました。
最初からJava7にして、前に作ったPluginをほぼそのままコピペしたらできました!
ありがとうございます!
Introとか作ってます。
チャンネル
黒歴史は忘れてください(sedmaruti,sedmulti時代)。
鯖立てようと奮闘(笑)しています。
アバター
せがれ
ID:4bc63b71
木を殴ってる
 
記事: 20
登録日時: 2015年9月25日(金) 21:31


Return to 質問:開発・制作関連

x