# Building Jalview from Source

You will need the following (hopefully):

- Java development kit (we used JDK1.5SE but JDK1.6 will work too, and maybe even jikes).
- Ant (we think 1.5.4 is quite sufficient to use the simple build file supplied).

With any luck, after setting your paths and JAVA_HOME correctly, you just need to change to the Jalview directory and run ant (this works from JBuilder and eclipse too, but NetBeans is a bit trickier).

       ant

Building a webstart version of jalview

Jalview depends on several libraries contained in the libs directory of the distribution. In order to access them, they must all be signed jars - using the same jarsigner key as jalview itself. There is a build target in ant to make the signed jar files in a directory called dist. But first you need to make your own key:

Making your own key

The ant 'makefulldist' target assumes that a keystore exists in a directory 'keys'. To make a key accessible using the default settings in the build.xml file then make the keys directory and add the jarsigner key with the following :

    mkdir keys
    keytool -genkey -keystore keys/.keystore -keypass alignmentisfun
    -storepass alignmentisfun -alias jalview
     (you will have to answer some personal questions here)
    ant makedist
     (should eventually generate a Jalview.jnlp file
      in ./dist along with a set of signed jars using the jalview
      key)

Building the JalviewLite applet
The JalviewLite applet is compiled using a subset of the packages in the src directory (specifically: MCView, and jalview.{datamodel, analysis, appletgui, utils, schemes, api, structure}, and com.stevesoft.*). Once compiled, these class files are obfuscated to make the code run efficiently. To compile the applet Jar, use the makeApplet task - optionally passing in a 'donotobfuscate' property to the ant build (e.g. -Ddonotobfuscate=true) to disable obfuscation.

The ant target 'pubapplet' can be used to compile install the jalviewApplet.jar and any dependent jars (under appletlib) into a copy of the examples directory created under the outputDir build property (which defaults to the 'dist' directory).

# using IDEs to build Jalview

The Jalview source distribution includes project definitions for Eclipse, Netbeans and some rather ancient Borland JBuilder .jpx project files. These files should be sufficient to set up basic source folders and build paths, but you will need to ensure that all .jar files in the lib and appletlib directories are added to the build path for your IDE project, and that the 'buildindices' target in Jalview's build.xml is executed with the 'outputDir' ant property set to the directory where the IDE expects to place compiled classes ('classes' directory for eclipse, 'build/classes' for netbeans).

Note: It is generally not recommended that you distribute build artefacts that were generated automatically via an IDE's own packaging mechanism (e.g. Netbeans' executable Jar and dependent lib directory). The hand-crafted ant build.xml is (currently) the only officially supported method of building distributable versions of Jalview.