If you've never used a debugger before, you may find this quite helpful. It's tricky to set up eclipse's debugger to run a jar file, though, and craftbukkit's dynamic plugin loading can compound the problem. I just got it working, so here's what I did. You'll need the craftbukkit jar file and the minescraft server jar file. You'll be running a server locally. Set up your paths like this (I'll use $PROJECT to refer to the base of your project): craftbukkit.jar and minecraft_server.jar go in $PROJECT/dist MyPlugin.jar goes in $PROJECT/dist/plugins (so that craftbukkit will see it). Any configuration goes in $PROJECT/dist/plugins/MyPlugin In eclipse, do this: Open Run, Run Configurations and then create a new Java Application configuration. In the Classpath tab, remove everything from 'User Entries'. In 'Bootstrap Entries' ensure that the JRE library is shown. Also add two external JARs - the craftbukkit.jar and the minecraft_server.jar. In the Main tab, set the Main class to 'org.bukkit.craftbukkit.Main'. In the Arguments tab, set the working directory to $PROJECT/dist (the path where the craftbukkit.jar lives). If you forget to do this step, craftbukkit.jar will be invoked from the project's root and it won't find your plugin. Save all of this and then test it using Run. This should start a minecraft server and the output should show up in the Console window. To debug something, add a breakpoint in your code somewhere. A good place to start is the onEnable() method. You will then need to recreate MyPlugin.jar. If you find yourself doing this repeatedly, consider creating a .jardesc file to speed up the process. Then run the debugger (Run, Debug). The server will start and run your plugin until it gets to the breakpoint. Of course, if your breakpoint can only be reached via an event, you'll need to trigger that event which probably means logging into the server. Now that you are at the breakpoint, eclipse will be showing you the debugger perspective. I won't go into too much detail here about how to use the debugger, but most likely the most interesting thing is the Variables browser, which will let you inspect the variables in scope at the breakpoint. When you are done, you can stop your server either manually or via the red square stop button at the top of the Console pane. Hope somebody finds this helpful.