Solved "Cannot find main class"

Discussion in 'Plugin Development' started by wontedyew15, Jan 29, 2018.

Thread Status:
Not open for further replies.
  1. Offline

    wontedyew15

    Hey so I'm new to plugins and i can't quite figure out how to fix this. Whenever i try to load my plugin on my server it doesn't appear in plugins and i get a nasty looking error message (will place in spoiler below). I've googled this but couldn't find any solutions. I will paste the error messages, main java file, plugin.yml and also some pictures of how i have it set out.

    Error message (open)
    org.bukkit.plugin.InvalidPluginException: Cannot find main class `me.kingwonton.MagicAndMachinery' at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:56) ~[craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:127) ~[craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:326) ~[craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:248) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.java:303) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:727) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.Bukkit.reload(Bukkit.java:534) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:628) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1338) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1198) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(SourceFile:37) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(SourceFile:9) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_112] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_112] at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:696) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:371) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:651) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:555) [craftbukkit-1.12.2.jar:git-Bukkit-c765646] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112] Caused by: java.lang.ClassNotFoundException: me.kingwonton.MagicAndMachinery at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_112] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:128) ~[craftbukkit-1.12.2.jar:git-Bukkit-c765646] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:76) ~[craftbukkit-1.12.2.jar:git-Bukkit-c765646] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_112] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_112] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_112] at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_112] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:54) ~[craftbukkit-1.12.2.jar:git-Bukkit-c765646] ... 22 more


    Code:
    package me.kingwonton.MagicAndMachinery;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin
    {
       
        @Override
        public void onEnable()
        {
            this.getLogger().info("Plugin has finished starting up.");
        }
       
        @Override
        public void onDisable()
        {
            this.getLogger().info("Plugin has shut down.");       
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
        {
            if (cmd.getName().equalsIgnoreCase("guide"))
            {
               
                if (sender instanceof Player)
                {
                    Player player = (Player) sender;
                    player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&aHere is your guide."));
                    Material book = Material.ENCHANTED_BOOK;
                    ItemStack item = new ItemStack(book, 1);
                    ItemMeta meta = item.getItemMeta();
                    meta.setDisplayName(ChatColor.translateAlternateColorCodes('&',"&aGuide"));
                    List<String> lore = new ArrayList<String>();
                    lore.add(ChatColor.translateAlternateColorCodes('&',"&eRight Click &8⇨  &7Browse Items"));
                    meta.setLore(lore);
                    return true;
                }
                else
                {
                    sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&cConsole cannot run this command."));
                    return true;
                }
            }
           
            return false;       
        }
    }

    plugin.yml (open)

    name: MagicAndMachinery
    description: A little extra for survival
    version: 1.0.0
    main: me.kingwonton.MagicAndMachinery
    author: KingWonton


    if you could help me that would be great and keep in mind that this is my first time using java and my coding is beginner if that :)
     
  2. Offline

    Zombie_Striker

    ;
    You forgot to include the ".Main" at the end of the path in the config.
     
  3. Offline

    wontedyew15

    Sorry for not understanding but what path would i put the ".Main" on.

    Code:
    package me.kingwonton.MagicAndMachinery.Main;
    
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin
    {
        @Override
        public void onEnable()
        {
            getLogger().info("MagicAndMachinery has started.");
        }
       
        @Override
        public void onDisable()
        {
            getLogger().info("MagicAndMachinery has closed.");       
        }
       
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
        {
            if (cmd.getName().equalsIgnoreCase("guide") && sender instanceof Player)
            {
                Player player = (Player) sender;
               
                player.sendMessage("Hello" + player.getName() + "!");
               
               
            }
           
            return false;
        }
    }
    
     
  4. @wontedyew15
    main: me.kingwonton.MagicAndMachinery
    should be
    main: me.kingwonton.MagicAndMachinery.Main
     
    Machine Maker likes this.
  5. Offline

    wontedyew15

    Thank you :)
     
Thread Status:
Not open for further replies.

Share This Page