Running Jalview from the command line

Jalview can be run from the command line, and provides a range of arguments.

There are a few different ways to do this:

- Use the jalview command that links to a launch script. Launch scripts are available if you are running an up to date version of Jalview (at least 2.11.2.0), or have installed Jalview via a package manager (e.g. conda, homebrew, apt).
- Embed arguments in a .JVL file. These files will be opened automatically by the Jalview application when double-clicked in a file browser on Windows and OSX.
- Execute the Jalview standalone Jar file with an existing Java installation
- For older versions of Jalview, call the native launch program directly.

Jalview's command line launch script

Since version 2.11.2, the Jalview native application includes a launching shell script. This is the easiest way to launch an installed Jalview application from the command line.

To run the launch script, simply open a Terminal (or Command prompt on Windows), and type:

      jalview

There are some important differences between the using the launching script and launching Jalview from its icon:

- The launching script will NOT perform automatic updates.
- The launching script cannot open or use JVL files.

Adding the launch script to your path

If typing 'jalview' in the terminal prompt (or windows command line) doesn't work then you will need to add the location of the jalview launch script to your `PATH`.

How you do this depends on your operating system.

- In Linux or Unix (`jalview.sh`)

  Running the Linux installer will give you the option of adding a symbolic link to that script in your `$PATH`, if it finds a suitable place that your user can add such a link (e.g. `~/bin`, `~/.local/bin`, `~/local/bin`, `~/opt/bin`). If you chose that option then you should be able to launch Jalview on the command line with the simple command

      jalview

  If you didn't choose that option during installation (or used an earlier version installer), or wish to make another symbolic link, you can link to the launching shell script with the command

      ln -s /PATH_TO_JALVIEW/bin/jalview.sh jalview

  or you could add `/PATH_TO_JALVIEW/bin` to your own `$PATH` as it already contains a symbolic link `jalview`.

- In Windows (`jalview.bat`, `jalview.ps1`)

  The Windows installer will give you the option of adding Jalview's script folder to your `%PATH%` allowing you to launch Jalview in a Command Prompt simply with the command

      jalview

  If you didn't choose that option during installation (or used an earlier version installer), you can either
  - add the `\PATH_TO_JALVIEW\bin` folder to your `%PATH%`, or
  - run the launcher script on the command line with its full path

        \PATH_TO_JALVIEW\bin\jalview.bat

    (you can leave off the `.bat` extension if you want).
  The `jalview.bat` file is a generic wrapper around the PowerShell script `jalview.ps1` in the same folder. This PowerShell script should work with both PowerShell 5.x (which is installed by default on all modern Windows machines), and also PowerShell 6.0+ which might have been installed afterwards.

- In macOS (`jalview`)

  We don't currently provide a macOS installer program, so you will need to add the command to you path manually. The script you should use to launch Jalview is linked to as

      /Applications/Jalview.app/Contents/MacOS/jalview

  so you can run that command with its full path, or make your own symbolic link to there, or add that folder to your `$PATH`.

      echo /Applications/Jalview.app/Contents/Resources/app/bin | sudo tee -a /etc/paths.d/Jalview

  This adds the directory "/Applications/Jalview.app/Contents/Resources/app/bin/" to a "Jalview" file in the /etc/paths.d/ directory. The lines from all the files in this directory are added the $PATH variable for all shells and users.

  If you cannot see the `jalview` command in the MacOS directory, then you probably have an older Jalview installation. In that case, you should make a symbolic link directly to the launch script with the command

      ln -s /Applications/Jalview.app/Content/Resources/app/bin/jalview.sh jalview

  If this doens't work, check your installation is running Jalview 2.11.2.0 or later.

Older versions of Jalview

If you are using a version of Jalview prior to 2.11.2, you can still launch from the command line, but you will have to use a more platform specific way to launch and use command line arguments.

- Standard installation on Linux/Unix:

      /PATH_TO_JALVIEW/Jalview -open https://www.jalview.org/examples/jpred_msa.fasta -annotations https://www.jalview.org/examples/jpred_msa.seq.concise -colour Clustal

- Standard installation on Windows:

      \PATH_TO_JALVIEW\Jalview.exe -open %HOMEPATH%\myalignment.fa

- OSX Application:

      open /Applications/Jalview.app --args -open /FULL/PATH/TO/myalignment.fa

  (put all the Jalview arguments after the --args parameter, and note that all files must be specified with their full paths)
- Jalview standalone executable Jar

              <Path to Java home>/bin/java -jar <Path to Jalview Jar>/jalview-all-1.8.jar -open myalignment.fa

If you have installed Jalview via conda or another package manager then you most likely have a 'jalview' command available in your terminal shell's default path. Alternately, if you have built Jalview from source, then take a look at the doc/building.md file included in the source distribution.

Use '-help' to get more information on the command line arguments that Jalview accepts.

Passing JVM Arguments to Jalview
If you need to modify parameters for Jalview's Java Virtual Machine, or configure system properties, then take a look at the instructions for how to setting the JVM's maximum memory.

Changing Jalview's 'Look and Feel'
If you are experiencing issues with the font size or layout of Jalview's GUI, you can try changing Jalview's 'Look and feel' by specifying a custom system property 'laf' on startup (see setting the JVM's memory for instructions on how to do this for your platform).
For the Jalview standalone executable jar, simply provide one of the property settings before the -jar argument

- -Dlaf=system (default look and feel for the OS)
- -Dlaf=crossplatform (Java's Metal Look and Feel)
- -Dlaf=nimbus (Java's alternative Nimbus Look and Feel)
- -Dlaf=mac (only has an effect on OSX)
- -Dlaf=gtk (only has an effect on Linux)
- -Dlaf=metal (force Java's Metal Look and Feel, default on linux)
- -Dlaf=quaqua (macOS only. Force attempt at old macOS theme)
- -Dlaf=vaqua (macOS only. Force attempt at modern macOS theme)

The currently configured look and feel is logged to Jalview's console. Once the look and feel has been changed, it will be stored in Jalview's .jalview_properties file for future Jalview sessions. This property is PREFERRED_LAF and can also be used to set the Look and feel by editing your .jalview_properties file.