ClassNotFound Exception

Discussion in 'Plugin Development' started by XXXtheGreat, Apr 15, 2012.

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

    XXXtheGreat

    Hi. I'm having a problem whenever I try to implement my first plugin. No matter what I do, the problem seems to persist, starting with this error in console at startup:
    Code:
    19:39:39 [SEVERE] Could not load 'plugins\SupahAdmin.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.ClassNotFoundException: com.
    github.XXXtheGreat.SupahAdmin
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:150)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:305)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:230)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:207)
            at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:183)
            at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigur
    ationManager.java:53)
            at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:156)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    Caused by: java.lang.ClassNotFoundException: com.github.XXXtheGreat.SupahAdmin
            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.findClass(PluginClassLoader.
    java:41)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:29)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:139)
            ... 8 more
    The main class file looks like this:
    Code:
    package com.github.XXXtheGreat.SupahAdmin;
     
    import java.util.logging.Logger;
     
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class SupahAdmin extends JavaPlugin{
       
        Logger log;
       
        public void onEnable() {
            log = this.getLogger();
            log.info("AdminPowers has been activated!");
           
        }
       
        public void onDisable() {
            log.info("AdminPowers has been disabled!");
        }
           
       
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player player = null;
            if (sender instanceof Player) {
                    player = (Player) sender;
                   
            }
           
            if (cmd.getName().equalsIgnoreCase("toggleadmin")) {
                player.sendMessage(ChatColor.YELLOW + "Admin powers toggled!");
            }
            return false;
        }
    }
    
    I can't figure out what went wrong. I looked at the only other thread I found on here about it, and it was supposedly fixed by right-clicking on the Project Folder and exporting instead of the File -> Export function. I tried that, still no dice. Thanks in advance!
     
  2. Offline

    SoThatsIt

    in your yml file it needs to be com.github.XXXtheGreat.SupahAdmin.SupahAdmin not com.github.XXXtheGreat.SupahAdmin
     
  3. Offline

    Musaddict

    Actually, the proper thing to do according to the package naming convention would be to make your package "com.github.xxxthegreat"
    then keep your class name the same.

    Generally, packages are all lower case, that way you can distinguish the class easily. Keep in mind that the package does NOT contain the class name in it, which is where you're having your issue.
     
  4. Offline

    XXXtheGreat

    So, should the plugin.yml be this?
    Code:
    name: SupahAdmin
    main: com.github.xxxthegreat.SupahAdmin
    version: 1.0
    commands:
      toggleadmin:
        description: Toggles powers.
    Because it still seems that it gets the error:
    Code:
    05:24:56 [SEVERE] Could not load 'plugins\SupahAdmin.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError
    : com/github/xxxthegreat/SupahAdmin : Unsupported major.minor version 51.0
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:150)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:305)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:230)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:207)
            at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:541)
            at org.bukkit.Bukkit.reload(Bukkit.java:182)
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
    22)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
    6)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4
    73)
            at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.
    java:469)
            at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:599)
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:568)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    Caused by: java.lang.UnsupportedClassVersionError: com/github/xxxthegreat/SupahA
    dmin : Unsupported major.minor version 51.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClassCond(Unknown Source)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$000(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.findClass(PluginClassLoader.
    java:41)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:29)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:139)
            ... 13 more
    I also renamed the package to com.github.xxxthegreat and changed the package specified at the top of the .java accordingly. Once again, thanks in advance!
     
  5. Offline

    Musaddict

    Actually, THAT error looks like your java versions are out of date. I would make sure you have java 1.7. Wouldn't hurt the server to do that. If you are compiling with 1.7 (I think default with newer eclipse versions) and you are running 1.6 on your server, then that is the type of message that pops up.

    http://www.oracle.com/technetwork/java/javase/downloads/java-se-jre-7-download-432155.html
     
  6. Offline

    XXXtheGreat

    I still appear to be getting the same error. :l
     
  7. Offline

    Musaddict

    Wait, the error says "com/github/xxxthegreat/SupahAdmin". Did you use slashes instead of periods? I've never noticed an error with slashed like that before.
     
  8. Offline

    XXXtheGreat

    Nope. The plugin.yml remains what it was when I last posted it.
    Should I try re-exporting now that I have Java 7?
     
  9. Offline

    Musaddict

    Wouldnt hurt.
     
  10. Offline

    XXXtheGreat

    It didn't work. ;-;
     
  11. Offline

    Deleted user

    I'm getting this as well.
    I would recommend you to start testing out different things...
     
  12. Offline

    XXXtheGreat

    What do you mean?
     
  13. Offline

    Deleted user

    Might work.
     
  14. Offline

    XXXtheGreat

    I'm lost. o.o

    Does anyone have a possible solution?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 25, 2016
  15. Offline

    XXXtheGreat

  16. Offline

    Lolmewn

    Reinstall Java. (Install latest Java 7, try compiling the plugin under Java 5 or 6)
     
  17. Offline

    Deleted user

    I know what you did wrong.
    You didn't set the CraftBukkit.jar as a referenced library.
    I made the same mistake :3.
     
  18. Offline

    XXXtheGreat

    As in where I go to the project, right-click, go to Properties, add a new path, and then define it as the craftbukkit-1.2.5-r1.0.jar? I did that.
     
  19. Offline

    Deleted user

    Code:
    com.github.XXXtheGreat.SupahAdmin
    
    That is your package name.
    This is what it should be:
    Code:
    com.github.XXXtheGreat
    
    Rename your package.
    After that, put this in your plugin.yml:
    Code:
    name: SupahAdmin
    main: com.github.XXXtheGreat.SupahAdmin
    version: 1.0
    commands:
      toggleadmin:
        description: Toggles powers.
    
    Done.
     
  20. Offline

    XXXtheGreat

    Hmm. That's what I already have. .-.
    How does one export in a different Java version in Eclipse?
     
  21. Offline

    Highace2

    I had a similar problem recently. It said "ClassNotFound" but the class was there and the plugin.yml was correct. Neodork helped me and advised me to try use NetBeans instead of eclipse and actually it worked. Even though I reinstalled eclipse it wasn't enough, so now am I running NetBeans instead which I think is much easier too :)
     
  22. Offline

    Mr Washington

    Highace2 I get the same error with Netbeans but with a different problem. I can find my main class, yet I can't reference a WorldGuard class. I have WorldGuard referenced, Imported, and called. However the server can-not find the class. Only error I have :-/
     
  23. Offline

    XXXtheGreat

    Do I have to uninstall Java and then downgrade to Java 5? :l
     
  24. Offline

    Deleted user

    Found the problem thanks to Technius
    Compile it with Java 6, then run it with Java 7.
     
  25. Offline

    Wolvereness Bukkit Team Member

    The first problem is the package... His main class is at package com.github.XXXtheGreat.SupahAdmin.SupahAdmin, but his plugin.yml says com.github.XXXtheGreat.SupahAdmin.
    The second problem compiling for a newer version of java but running on older. Set your IDE to use 1.6, it should fix it.
     
  26. Offline

    soliddanii

    same problem. my package name is ok, and plugin.yml too.
    Im running netbeans. this happens to me since I updated to 1.3.1 R2
     
Thread Status:
Not open for further replies.

Share This Page