java.lang.NoClassDefFoundError - how do I fix this?

Discussion in 'Plugin Development' started by asdaarg, Mar 11, 2011.

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

    asdaarg

    I'm developing a plugin that uses another plugin I made, and it works only if I don't declare any NSCategory variables, so the following works:
    Code:
    if (s.getCategory() == null) {
    	msg(P,MSGwhoLinePlace, p.getName(), s.getName());
    } else {
    	msg(P,MSGwhoLinePlaceCat, p.getName(), s.getName(), s.getCategory().getName());
    }
    /*
    NSCategory c=s.getCategory();
    if (c == null) {
    	msg(P,MSGwhoLinePlace, p.getName(), s.getName());
    } else {
    	msg(P,MSGwhoLinePlaceCat, p.getName(), s.getName(), c.getName());
    }//*/
    
    but if I replace it with with what is commented out it will compile but throw this when running craftbukkit:
    Code:
    18:49:08 [SEVERE] Could not load plugins/nsonlinelist.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
    	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:80)
    	at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:129)
    	at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:94)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:59)
    	at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:205)
    	at org.bukkit.command.SimpleCommandMap$ReloadCommand.execute(SimpleCommandMap.java:196)
    	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
    	at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
    	at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:381)
    	at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:366)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoClassDefFoundError: com/asdaarg/bukkit/namespace/NSCategory
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:247)
    	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:72)
    	... 11 more
    Caused by: java.lang.ClassNotFoundException: com.asdaarg.bukkit.namespace.NSCategory
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:30)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    	... 14 more
    
    The weird thing is I have other classes that I can declare and use but not NSCategory. What could possibly be wrong?
     
  2. Offline

    eisental

    I don't know if that will solve it but you could try adding a depend: <NSCategory plugin name> line in the plugin.yml file of the plugin that needs to access the NSCategory class.

    EDIT: Forgot to mention that the plugin name in the depend line must be surrounded with brackets -
    depend: [pluginname]
     
  3. Offline

    asdaarg

    Thanks for the suggestion but did not work.

    Edit: This problem was apparently bukkit issue since it got solved in a more recent version of bukkit.
     
Thread Status:
Not open for further replies.

Share This Page