当前位置: 首页 > 知识库问答 >
问题:

在Minecraft bukkit插件中找不到主类

蒋培
2023-03-14

我正在尝试学习如何编写minecraft插件,但是我在开始时遇到了一点问题,当我尝试运行导出的插件时,我得到一个主类未找到错误。我已经尝试移动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);
    }
}

helloCommand:

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

Pic of Package Explorer编辑前一个问题,更正建议但错误仍然存在

共有2个答案

鲍健柏
2023-03-14

你应该把你的插件。如果您使用Eclipse进行编译,则在源文件夹(src)中使用yml。如果使用IntelliJ,请将文件放在“资源”文件夹中。您的API(Spigot或Bukkit)无法加载文件,因为它实际上没有在最终的<代码>中导出。jar文件。您可以通过使用7Zip或WinRAR等存档程序打开Jar文件来查看文件是否已导出。插件。yml应该位于文件的根目录下。

相德宇
2023-03-14

我已经有一段时间没有编写插件了,但回顾一下我以前做的,我的插件。yml不位于参考库中:

还有,我的插件。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
 类似资料:
  • 我为我的服务器找到了一个非常好的插件,但它已经死了,作者没有更新它,所以我更新了它,但当我把插件放在我的插件文件夹中时,它没有工作。这是cmd错误]:无法加载“plugins\BossBarMessage”。jar'在文件夹“plugins”org中。布基特。插件。InvalidPlugineException:找不到主类“com”。那唐。bossbarmessage。组织上的“主要”。布基特。插

  • 我有一个Java/Selenium/TestNG/Maven项目。我可以成功创建myproj-0.0.1-SNAPSHOT。jar文件。当我尝试运行它时,我得到一个错误: 我的主要目标是能够运行此快照。jar文件,用于在远程计算机上运行我的测试用例。 我在pom中使用了一个构建插件。xml: 构建项目时,我使用的是maven命令:“mvn clean package shade:shade” 这就

  • 所以,我最近创建了我的第一个插件,叫做BetterTeaming。该插件正在使用插口api。插件发布后,一段时间后,有人建议我使用Maven从编译的jar中删除插口api依赖项。这应该缩小文件大小。然而,我对Maven了解不多。我成功地设置了它,并将文件复制到Maven文件夹(包括层次结构截图),但每次我在本地服务器Minecraft上加载插件时,它都会向我抛出ClassNotFoundExcep

  • 将IntelliJ从版本12更新到13后,无法解析以下Maven相关插件: 当使用IntelliJ12时,这些不在插件列表中。不知怎么的,它们在更新后被添加了,现在IntelliJ抱怨它们找不到了。我可以在哪里从列表中删除这些插件或通过安装它们来解决问题? 我可以毫无问题地运行maven目标和,但是配置文件/插件在IDE中显示红色并伴有警告。

  • 问题内容: 我一直在为我班的编程工作。我正在使用NetBeans。我完成了项目,效果很好。当我尝试运行它时,出现一条消息“找不到主类”。这是一些主要的代码: 我之前发布了此内容,但遇到了一些问题。我已经固定了其他人,现在只剩下这一个了。任何建议将不胜感激。 问题答案: 在项目浏览器中右键单击您的项目 点击属性 点击运行 确保您的主类是您想要成为切入点的主类。(确保使用完全限定的名称,即mypack

  • 我一直在做编程课的作业。我正在使用NetBeans。我完成了我的项目,它工作得很好。当我尝试运行它时,我收到一条消息,上面写着“找不到主类”。下面是一些主要的代码: 我以前发过这个,但有几个问题。我已经修好了其他的,现在只剩下这一个了。任何建议都将不胜感激。