Setting Up Your Workspace

This page will go through some of the tools that you will need to use to work with Bukkit and building Bukkit plugins.

# Tools

There is some developer choice when it comes to what you use to build your software, however, there are some key tools every developer needs. Even if you only want to make plugins, there are some tools that will make your job easier, and if you want to go open source, easier for everyone who helps you!

## Java Development Kit

A JDK (Java Development Kit) is required to compile Java for use in the JRE (Java Runtime Environment). The latest version of the JDK is available from the Oracle Technology Network.

### Which version of the JDK?

There are multiple versions of Java, and consequently, multiple versions of the JDK. Both Bukkit and Minecraft are now compiled for Java 7. Generally, newer versions of the JDK can target older Java versions, however, by default they target their own version. Programs and plugins compiled with a new version of Java are not compatible with older versions of the JRE, attempting to run such a plugin results in a UnsupportedClassVersionError. In practice, it is common to use the JDK version that corresponds with your runtime environment.

### 64-bit [x64] or 32-bit [x86]

Unless your computer is not capable of running 64-bit software, you should use a 64-bit (x64) JDK. The rest of the development environment will need to match the version of the JDK you have installed. On 64-bit systems, it is possible to have both 64-bit and 32-bit JDKs installed at the same time.

## Git

 is a distributed version control system. The Bukkit Project manages all its code through Git. Git allows the lone developer to keep track of their work and different developers to collaborate on work, tracking all changes that were made and by whom. It is very powerful, and consequently can be a little difficult to use sometimes. The latest version of git can be found here.

### Using Git

Detailed instructions for installing and using git can be found in the Pro Git book.

#### GitHub

GitHub is a code sharing website and hosts the source code of the Bukkit Project. Bukkit projects can be cloned from our repository found here.

Sharing of code works both ways—you can download shared code, but you can also share yours with the world. This is a great idea in this open community, as it allows others to help you with your project, or even develop new features for your plugins! If you intend to contribute to the Bukkit Project you must be willing to share your code. Additional instructions for using GitHub can be found at GitHub Help.

## Apache Maven

Apache Maven is a tool that the Bukkit Project uses to manage building our code. The latest version of Maven can be found on the here on the Apache Maven site.

### Using Maven

Additional instructions for installing and using Maven can be found here on the maven site.

Once installed, Maven should be utilized to compile Bukkit and CraftBukkit. Refer to the respective README files in the repositories for instructions.

## Integrated Development Environments

The IDE (Integrated Development Environment) is a program you can use to compile and debug your plugins. An IDE is an optional piece of the developer tool chain. It is possible to use notepad (or its equivalent) and produce a working a plugin. An IDE however, makes the life of a developer much easier by integrating powerful tools, providing syntax highlighting, and error checking. The choice of which IDE to use is yours to make!

### Eclipse

The Eclipse IDE is a popular choice among plugin developers. The latest version can be found here. Plugin developers should download the **Eclipse IDE for Java Developers**. Eclipse provides Maven integration by means of the *m2Eclipse* plugin, and Git integration with by mean of the *eGit* plugin. Additionally, the *YEdit* plugin can be installed to provide a YAML editor.

*For general Eclipse IDE usage, please refer to the Eclipse documentation.*
*For Maven integration usage, please refer to the m2eclipse documentation.*
*For Git integration usage, please refer to the eGit documentation.*
### NetBeans

The Netbeans IDE is developed by Oracle. The latest version can be found here on. Plugin developers should download the **Netbeans Java SE bundle**. Netbeans provides native integration with Maven and Git integration by means of a Git plugin.

*For usage instructions please refer to the Netbeans documentation.*
### IntelliJ IDEA

IntelliJ IDEA is another popular IDE. The latest version, 14, can be found here on the IntelliJ site. Plugin developers should download the **Community Edition**. IntelliJ provides native integration with Maven and Git.

*For usage instructions please refer to the IntelliJ documentation.*
# Where To From Here

There is lots more involved in actually developing and testing your code, however hopefully you now have the tools to get started. If you find any particularly useful tutorials make sure to link them here!

Continue the tutorial with Plugin Tutorial