# Console mode

JAlbum can also be controlled from the command line. It accepts the same parameters as you are able to set through the graphical user interface.
Issue `java -jar JAlbum.jar -help` in the same directory as JAlbum is installed in and JAlbum will list all allowed parameters. Here is a list of the currently allowed parameters and their defaults:

    -alwaysUploadPages true
    -appendImages false
    -characterEncoding
    -classicReaders true
    -closeupDirectory slides
    -closeupPrefix
    -cols 6
    -copyOriginals false
    -customImageOrdering
    -dateFormat
    -directoriesFirst true
    -directory
    -exifImageDescription false
    -exifUserComment true
    -ftpForceUTF8 false
    -ftpPassword
    -ftpPort 21
    -ftpServer
    -ftpUser
    -ftpWebDirectory
    -highQualityScaling false
    -highQualityThumbs true
    -ignorePattern \..*
    -imageLinking LinkScaled
    -imageOrdering OrderByDate
    -imageSize 800x800
    -includeDirectories true
    -indexPageName index
    -iptcCaption true
    -jpegComment false
    -metaData true
    -outputDirectory album
    -pageExtension .html
    -passiveMode true
    -programDirectory C:\Dev\Java\Jalbum
    -progressiveMode false
    -projectFile
    -qualityPercent 70
    -remoteDirectory album
    -resourceDirectory res
    -reverseOrder false
    -rows 4
    -runTool
    -sameDirectory false
    -savePassword true
    -secureFtp false
    -skin XP
    -skinsDirectory C:\Dev\Java\Jalbum\skins
    -slideDirectory slides
    -slides true
    -smartUpload
    -style Plain.css
    -subdirs true
    -textEncoding ISO-8859-1
    -textFileComment true
    -thumbSize 120x120
    -thumbnailDirectory thumbs
    -thumbnailPrefix
    -updatedDirsOnly false
    -uploadAll
    -urlEncode false
    -user.<user variable> <value>
    -webRoot http://
    -writeUTF8 false

User defined variables are passed as `-user.yourVariable "Value"`. Similar applies to skin defined variables (having a `-skin.` prefix). Command line mode is great for automated album generation and updates. Webmasters can make scripts that call JAlbum regularly to update server albums etc.

## Examples

Here is an example that updates an album out of files in D:\Nature and grabs other settings from the nature.jap project file: ``

    java -jar JAlbum.jar -directory D:\Nature -sameDirectory -projectFile nature.jap -appendImages

Here's another example that uploads the same project to a web server (v6): `

    java -jar JAlbum.jar -directory D:\Nature -sameDirectory -projectFile nature.jap -smartUpload

` Here is an example that makes JAlbum enter "server mode" by running the "Server mode" Tool. When in "server mode", JAlbum monitors changes under the image directory. As soon as a change is detected (new image added for instance) a "Make album" operation is triggered. JAlbum then resumes to monitor the image directory. `

    java -jar JAlbum.jar -projectFile nature.jap -runTool "tools/Server mode.bsh"

` Linux/UNIX users: To run JAlbum from the command line in a plain server system (with no access to the X windowing system) add the `-Djava.awt.headless=true` command line switch.