[英]Cannot find main class in Minecraft bukkit plugin
我正在尝试学习如何编写我的世界插件但是我在开始时遇到了一些问题,当我尝试运行导出的插件时,我得到一个主要的 class 未找到错误。 我已经尝试移动 plugin.yml 文件,检查所有部分都已导出并重命名类等无济于事。 还阅读了现有的问题。 任何帮助将不胜感激。
主要的:
package me.raultechsupport.helloworld;
import org.bukkit.plugin.java.JavaPlugin;
import me.raultechsupport.helloworld.commands.hellocommand;
public class Main extends JavaPlugin {
@Override
public void onEnable() {
new hellocommand(this);
}
}
你好命令:
package me.raultechsupport.helloworld.commands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import me.raultechsupport.helloworld.Main;
public class hellocommand implements CommandExecutor {
@SuppressWarnings("unused")
private Main plugin;
public hellocommand(Main plugin) {
this.plugin = plugin;
plugin.getCommand("hello").setExecutor(this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg3) {
if (!(sender instanceof Player)) {
sender.sendMessage("Only players may execute this command!");
return true;
}
Player p = (Player) sender;
if (p.hasPermission("hello.use")) {
p.sendMessage("Hi!");
return true;
} else {
p.sendMessage("You do not have permission to execute this command!");
}
return false;
}
}
插件.yml:
name: HelloWorld
version: 1.0
author: RaulTechSupport
main: me.raultechsupport.helloworld.Main
description: Hello.
commands:
hello:
aliases: [hi]
description: Hi!
控制台错误:
org.bukkit.plugin.InvalidPluginException: Cannot find main class `me.raultechsupport.helloworld.Main' [11:36:00 ERROR]: Could not load 'plugins/HelloWorld.jar' in folder 'plugins' at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:137) ~[patched_1.16.5.jar:git-Purpur-1082] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:81) ~[patched_1.16.5.jar:git-Purpur-1082] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:305) ~[patched_1.16.5.jar:git-Purpur-1082]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:397) ~[patched_1.16.5.jar:git-Purpur-1082]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:389) ~[patched_1.16.5.jar:git-Purpur-1082]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:264) ~[patched_1.16.5.jar:git-Purpur-1082]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1070) ~[patched_1.16.5.jar:git-Purpur-1082]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Purpur-1082]
Caused by: java.lang.ClassNotFoundException: me.raultechsupport.helloworld.Main
at java.lang.Thread.run(Thread.java:834) [?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:183) ~[patched_1.16.5.jar:git-Purpur-1082]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:111) ~[patched_1.16.5.jar:git-Purpur-1082]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:398) ~[?:?]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:79) ~[patched_1.16.5.jar:git-Purpur-1082]
at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
... 8 more
我已经有一段时间没有编写插件了,但回顾我之前所做的,我的plugin.yml
不在referenced libraries
中:
另外,我的plugin.yml
和你的有点不同:
name: Message
main: Main.MainMessage
version: 1.0.0
author: Tom Croux - CerfMetal
commands:
msg:
description: Send a private message
permission: msg.use
r:
description: Reply to a private message
permission: msg.use
mute:
description: Mute a player
permission: msg.use
unmute:
description: Unmute a player
permission: msg.use
如果您使用 Eclipse 进行编译,您应该将您的plugin.yml
放在您的源文件夹 ( src
) 中。 如果您使用 IntelliJ,请将文件放在resources
文件夹中。 您的 API(Spigot 或 Bukkit)无法加载该文件,因为它实际上并未在您的最终.jar
文件中导出。 您可以通过使用 7Zip 或 WinRAR 等存档程序打开 Jar 文件来查看您的文件是否已导出。 plugin.yml 应该在文件的根目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.