Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Although JabRef is primarily a GUI based application, it offers several command line options that may be useful. JabRef can even perform file conversion operations without opening the graphical interface.
This description applies since JabRef 5.0, because JabRef comes with a pre-bundled Java-Runtime Environment
Locate JabRef.bat
(Windows) or JabRef
(Linux, Mac OS). In the partable versions, this is JabRef-5.0-portable_windows\JabRef\runtime\bin\JabRef.bat
and JabRef-5.0-portable_linux\JabRef\lib\runtime\bin\JabRef
.
Do not use JabRef\JabRef.exe
or bin/JabRef
The following documentation is for Windows, but works equally well on Linux and Mac OS:
In some cases, you have to specify --console
to ensure that output is written to the console.
You can always specify one or more BibTeX files to load by simply listing their filenames. Take care to specify all options before your list of file names. Ensure that the first file name is not misunderstood as being an argument for an option; this simply means that if a boolean option like -n
or -l
immediately precedes a file name, add the word true
as an argument. For instance, the command line will correctly load the file original.bib
, export it in docbook format to filetoexport.xml
, and suppress the GUI_
The word true prevents the file name from being interpreted as an argument to the -n
option.
-h
(or --help
)
Displays a summary of the command line options, including the list of available import and export formats.
-n
(or --nogui
)
Suppresses the JabRef window (i.e. no GUI - Graphic User Interface - is displayed).
It causes the program to exit immediately once the command line options have been processed. This option is useful for performing file conversion operations from the command line or a script.
-i filename[,import format]
(or --import filename[,import format]
or --importToOpen filename[,import format]
)
Import or load the file filename
.
If only the filename is specified (or if the filename is followed by a comma and a *
character), JabRef will attempt to detect the file format automatically. This works for BibTeX files, and also for all files in a supported import format. If the filename is followed by a comma and the name of an import format, the given import filter will be used.
Use the -h
option to get the list of available import formats.
If an export option is also specified, the import will always be processed first, and the imported or loaded file will be used by the export filter. If the GUI is not suppressed (using the -n
option), any imported or loaded file will show up in the main window.
If --importToOpen
is used, the content of the file will be imported into the opened tab.
Note: The -i
option can be specified only once, and for one file only.
-o filename[,export format]
(or --output filename[,export format]
Export or save a file imported or loaded by the same command line.
If a file is imported using the -i
option, that file will be exported. If no -i
option is used, the last file specified (and successfully loaded) will be exported.
If only filename is specified, it will be exported in BibTeX format. If the filename is followed by a comma and an export format, the given export filter will be used.
A custom export filter can be used, and will be preferred if the export name matches both a custom and a standard export filter.
If the GUI is not suppressed (using the -n
option), any export operation will be performed before the JabRef window is opened, and the imported database will show up in the window.
Note: The -o
option can be specified only once, and for one file only.
XMP is an ISO standard for the creation, processing and interchange of standardized and custom metadata for digital documents and data sets.
The first option is to export all entries, which are included in the entries.bib
file to the specified export.xmp
file. The second argument, separated by comma, is the type of exporter used by JabRef.
The second option is to export every entry in the entries.bib in a single .xmp file. Therefore, the file name is replaced by the keyword split
without a file ending! JabRef generates individual .xmp files at the path
location. The file name is a combination of the identifier provided by JabRef and the cite key of the entry.
-importBibtex
Import or load code directly from the BibTeX file. This only works for BibTeX files, and does not support files of other import formats. If it detects this command line option, the JabRef CLI will take in its following argument as a BibTeX string that represents the BibTeX article file being read in for import (usually a filename). JabRef then passes on this information to a helper function that will parse the BibTex string into entries and return the resulting BibTex entries to the JabRef CLI.
If the GUI is not suppressed (using the -n
option), any imported or loaded BibTeX file will show up in the main window.
Note: The -importBibtex
option can be specified only once, and for one file only.
-m [field]searchTerm,outputFile:file[,exportFormat]
(or --exportMatches [field]searchTerm,outputFile:file[,exportFormat]
)
Save to a new file all the database entries matching the given search term.
If the filename is followed by a comma and an export format, the given export filter will be used. Otherwise, the default format html-table (with Abstract and BibTeX, provided by tablerefsabsbib) is used.
Information about to the search function is given in 'advanced search' documentation.
Note: In addition it is also possible to search for entries within a time frame such as Year=1989-2005
(instead of only searching for entries of a certain year as in Year=2005
).
Note: Search terms containing blanks need to be bracketed by quotation marks, as in (author=bock or title|keywords="computer methods")and not(author=sager)
-f=FetcherName:QueryString
(or --fetch=FetcherName:QueryString
)
Query a Web fetcher and import the entries.
Pass both the name of a fetcher and your search term or paper id (e.g. --fetch=Medline:cancer
), and the given fetcher will be run. Some fetchers will still display a GUI window if they need feedback from you.
The fetchers listed in the Web search panel can be run from the command line. To get the list of available fetchers, run --fetch
without parameters.
-a infile[.aux],outfile[.bib] base-BibTeX-file
(or --aux infile[.aux],outfile[.bib] base-BibTeX-file
)
Extract a subdatabase from a .aux file:
When you compile a LaTeX document (e.g. infile.tex
), an .aux file is created (infile.aux
). Among other things, it contains the list of entries used in your document. JabRef can extract the references used from the base-BibTeX-file
to a new .bib file (outfile.bib
). This way, you will have a subdatabase containing only the entries used in the .tex file.
-asfl
(or --automaticallySetFileLinks
)
Automatically set file links.
-g
(or --generateBibtexKeys
)
Regenerate all keys for the entries of a BibTeX file.
-x filename
(or --prexp filename
)
Export user preferences to an XML file. After exporting, JabRef will start normally.
-p filename
(or --primp filename
)
Import user preferences from an XML file (exported using the -x
option, or through the GUI). After importing, JabRef will start normally.
-d key
(or --prdef key
)
Reset preferences (key1, key2,..., or all
).
-b
(or --blank
)
Do not open any files at startup
-v
(or --version
)
Display the version number of JabRef.
--debug
Show debug level messages.
--console
Show info and error messages in the console.
This feature can be toggled and configured under Preferences → Advanced.
Note that activating this feature under Windows XP SP2 (and possibly other configurations) may prompt a message box stating that certain features of the program have been blocked by the Windows firewall. You can safely tell the firewall to keep blocking - the firewall will not interfere with remote operation of JabRef.
If listening for remote operation is enabled, JabRef will at startup attempt to start listening to a specific port. This means that other applications can send information to JabRef through this port. JabRef will only accept local connections, to avoid the risk of interference from outside.
Binding to this port makes it possible for a second JabRef instance to discover that the first one is running. In this case, unless specifically instructed to run in stand-alone mode, the second JabRef instance will pass its command line options through the port to the first JabRef instance, and then immediately quit.
The first JabRef instance will read the command line options, and perform the indicated actions, such as reading or importing a file, or importing a file to the currently shown database. If a file is imported using the command-line option --importToOpen
, the imported entries will be added to the currently shown database. If no database is open, a new one will be created.
Group for your own papers: author=YOURSELF
Group for the papers of your group: author=YOURSELF and author=COLLEAGUE1 and author=COLLEAGUE2
Sort your entries with the bibtexkey
on save (can be set in the database properties). This makes finding an entry easier in a large file.
Specify your save actions (can be set in the database properties). This ensures that your BibTeX file will look more consistent.
The autosave and backup features is available since JabRef 3.7.
To reduce the amount of configuration options, the possibility to disable the creation of .bak
files was removed in JabRef 5.1.
JabRef generates .sav
and .bak
files while working. .sav
is the automatic backup feature: Each 15 seconds, the current state of the library is saved. .bak
preserves the last state of the library after saving. Thus, one can go back one save command in the history.
In addition to .bak
and to .sav
, JabRef offers automatic saving of the library. No need to click on File --> Save or pressing Ctrl+S anymore: The opened database are saved automatically without manual intervention.
In case the .bib
file should automatically be saved on each change, you can direct JabRef to do so. This feature needs to be activated in the preferences:
This functionality runs in the background while you are working on a BibTeX database. It makes a backup copy (in a .bib.sav
file) and keeps that up-to-date on every user interaction. For instance, when you change a field the new value would get saved into the backup copy. Assuming that JabRef crashes while you are working on a BibTeX database. When you try again to open the file JabRef crashed with you will get the following dialog:
Now you have the possibility to restore your changes which would normally get lost.
When JabRef gets closed normally the .sav
file will be removed. Otherwise, this file is going to be used for database restoration next time.
This information is outdated. Please help to improve it.
Opened from main window by double-clicking anywhere on the line of the entry, or selecting the entry and pressing Enter or Ctrl + D. The panel is closed by pressing Esc._
In this panel you can specify all relevant information on a single entry. The entry editor checks the type of your entry, and lists all the fields that are required, and the ones that are optional, for referring the entry with BibTeX. In addition, there are several fields termed General fields, that are common to all entry types.
Up to JabRef 4.1, the field was called "Review". The field name was changed to "Comments" as "Review" indicated some external reviews or some fundamental comments.
Switch panels by clicking on the tabs, or navigate to the panel to the left or right using the following key combinations: Ctrl + Tab or Ctrl + + switch to the tab to the right, and Ctrl + Shift + Tab or Ctrl + - switch to the tab to the left. You can also switch to the next or previous entry by pressing Ctrl + Shift + Down or Ctrl + Shift + Up, respectively, or by clicking the appropriate toolbar button.
The BibTeX source panel shows how the entry will appear when the database is saved in BibTeX format. If you wish, you can edit the BibTeX source directly in this panel. When you move to a different panel, press Ctrl + S or close the entry editor, JabRef will try to parse the contents of the source panel. If there are problems, you will be notified, and given the option to edit your entry further, or to revert to the former contents. If Show source by default is checked in the General options tab of the Preferences dialog, the source panel will be the one shown each time you open the entry editor. If you prefer editing the source rather than using the other four panels, you should check this option.
Tip: If your database contains fields unknown to JabRef, these will be visible in the source panel.
Tip: the pdf and url fields support Drag and Drop operations. You can drop there an url from your browser. either a link to a pdf file (that JabRef can download for you) or you can keep the link.
When the contents of a field is changed, JabRef checks if the new contents are acceptable. For field types that are used by BibTeX, the contents are checked with respect to the use of the '#' character. The hash symbol is only to be used in pairs (except in escaped form, '\#'), wrapping the name of a BibTeX string that is referenced. Note that JabRef does not check if the referenced string actually exists (this is not trivial, since the BibTeX style you use can define an arbitrary set of strings unknown to JabRef).
If the contents are not accepted, the field will turn red, indicating an error. In this case the change will not be stored.
The entry editor offers autocompletion of words. In the Preferences dialog you can enable or disable autocompletion, and choose for which fields autocompletion is active.
With autocompletion, JabRef records all words that appear in each of the chosen fields throughout your database. Whenever you write the beginning of one of these words, it will be suggested visually. To ignore the suggestion, simply write on. To accept the suggestion, either press Enter or use your arrow keys or other keys to remove the selection box around the suggested characters.
Note: the words considered for suggestion are only the ones appearing in the same field in entries of the same database as the one you are editing. There are many ways to realise this kind of feature, and if you feel it should have been implemented differently, we'd like to hear your suggestions!
The entry editor allows for file(s) to be dragged and dropped directly into the entry editor window. There are three different types of behaviors that govern how the files are handled, and the user can set which behavior they would like the entry editor to use in the Entry editor tab of the Preferences dialog. These behaviors are the following: copy, link, move.
If the copy option is selected as the drag and drop behavior, the entry editor will create a copy of the file in the current directory. While this option is selected, the keyboard shortcuts needed to move, copy or link files are the following:
Move: Ctrl + Drag (Windows) or Option + Drag (MacOS/Linux)
Copy: Shift + Drag (Windows) or Command + Drag (MacOS/Linux) or no key + Drag
Link: Alt + Drag (Windows) or Command + Option + Drag (MacOS/Linux)
If the link option is selected as the drag and drop behavior, the entry editor will create a link of the file. This creates a shortcut to the file and will not copy the file to the current directory. While this option is selected, the keyboard shortcuts needed to move, copy or link files are the following:
Move: Alt + Drag (Windows) or Command + Option + Drag (MacOS/Linux)
Copy: Ctrl + Drag (Windows) or Option + Drag (MacOS/Linux)
Link: Shift + Drag (Windows) or Command + Drag (MacOS/Linux) or no key + Drag
If the move option (shown as Copy, rename and link file) is selected as the drag and drop behavior, the entry editor will move the file to the current directory by copying the file to the current location, renaming the copy, and linking it to the original file. While this option is selected, the keyboard shortcuts needed to move, copy or link files are the following:
Move: Shift + Drag (Windows) or Command + Drag (MacOS/Linux) or no key + Drag
Copy: Ctrl + Drag (Windows) or Option + Drag (MacOS/Linux)
Link: Alt + Drag (Windows) or Command + Option + Drag (MacOS/Linux)
Pressing Ctrl + K or the 'key' button causes the BibTeX key for your entry including the surrounding to be copied to the clipboard.
Pressing Ctrl + Shift + K causes the BibTeX key for your entry to be copied to the clipboard.
Press Ctrl + G or the 'gen key' button (the magic wand) to autogenerate a BibTeX key for your entry based on the contents of its required fields.
By selecting this Tab, we are sending the title of the selected paper to Mr. DLib.
See for more information on grouping.
Use Quality -> Integrity Check
often to ensure that the quality of your database does not degrade. See for more information.
See for more information.
By using the service, you can generate an appropriate .gitignore
file by opening .
The .bak
file preserves the last state of the library before saving. Thus, one can go back one save command in the history. For more advanced history, we recommend to use .
You can fully customize which fields should be regarded as required and optional for each type of entry, and which fields appear in the General fields tabs. See for more information about this.
For information about how the fields should be filled out, see .
The entry editor contains six panels: Required fields, Optional fields, General, Abstract, Comments and BibTeX source, where General, Abstract and Comments can be customized (see for details). Inside the three first panels, Tab and Shift + Tab are used to switch focus between the text fields.
BibTeX supports string constants. One can define in the bibliography. JabRef offers editing of these strings via the .
For instance, if you see #jan#
in the month
field, the "real" BibTeX entry looks like month = jan
. For more details, see .
For more information on how JabRef generates BibTeX keys, see .
Mr. DLib is a service that calculates recommendations for you based on this title. After a short loading time the recommendations are listed in the Related Articles Tab. For detailed information see . The following image shows the Related Articles Tab with recommendations to the selected item.
JabRef itself can be either installed using the installer or just running the portable version. You get these files from http://downloads.jabref.org/.
On Windows, the installer automatically downloads the OracleJDK (i.e. Java). You can also install it manually as described here.
http://downloads.jabref.org/ - redirects to the preferred place to download JabRef
Development snapshots: https://builds.jabref.org/master/
https://sourceforge.net/projects/jabref/files/ - contains historical releases only
JabRef 5.x is shipped with a lightweight Java runtime environment that includes only the Java dependencies JabRef uses. There are two major ways of obtaining JabRef for your platform.
For stable versions, head to https://downloads.jabref.org, choose the installer and run it. On Windows, you can use the chocolatey package manager and execute choco install jabref
to get the latest version. On Ubuntu, you can use snap install jabref
to get the latest stable version from snapcraft.
In case, you want to take advantage of the latest features, you can use pre-built binaries crafted from the latest development branch.
To use the prebuilt binaries, visit http://builds.jabref.org/master/ and download the packaged binaries (e.g., dmg
files for MacOS and exe
files for Windows), run them and follow the instructions. We also provide generic archive files (e.g., tar.gz
files for Linux and MacOS, and zip
files for Windows) which can be downloaded and extracted. Inside the archive files you will find a bin
subdirectory which contains the binary needed to run JabRef (i.e., JabRefMain
for Linux and MacOS, and JabRefMain.bat
for Windows).
This method is mainly for package maintainers and users who would like to build the latest snapshots of JabRef directly from the source. If you want to setup JabRef for development, follow the instructions for Setting up a workspace
To build JabRef from source, you first need to have a working Java Development Kit 13 (JDK 13) and Git installed on your system. After installing the two requirements, you open a terminal window (i.e., a command prompt) and type the following:
In a nutshell, you clone the latest snapshot of JabRef into jabref
directory, change directory to jabref
, initialize and update all the submodules (dependencies) of JabRef, assemble them to be built via JDK 13, and finally build and link them together.
The output should be the build/image
subdirectory that contains the JabRef binary with all of its Java dependencies. To start JabRef, you need to run bin/JabRefMain
(in Linux and MacOS) or bin/JabRefMain.bat
(in Windows) under build/image
subdirectory.
JabRef 4.x requires JRE 8 (and does not run at JRE 9 onwoards)
JavaFX is not included in every Java runtime environment or development kit. Therefore, we highly recommend to use Oracle Java 8. JavaFX is included since Java 1.8.0_60. The other official support for JavaFX is OpenJDK with the external library OpenJFX. Unfortunately, the installation is not always straight forward. Therefore, we only recommend this if you know what you are doing. In case you want to use OpenJDK with OpenJFX in general you should follow this instructions. For Ubuntu 16.04 LTS, 18.04 LTS and 20.04 LTS head to the section Installation Commands.
In case you already have a Java version installed - or you closely followed the steps below, you can check your Java version by typing the following command into your command line interface:
java -version
It is possible having multiple Java versions at the same time. On debian based Linux distributions set your preferred Java version using the following command:
sudo update-alternatives --config java
and choose it by typing the number matching the Java version.
Your Java version should look like this, depending on your operating system and JDK/JRE:
Oracle Java 32-Bit:
Oracle Java 64-Bit:
OpenJDK 32-Bit:
OpenJDK 64-Bit:
If this does not report to be a product from Oracle (for instance tells you that it is a GCJ VM) even if you have installed the Oracle JVM then you need to change your setup. In the following, the installation is documented for Ubuntu, Debian, Fedora, CentOS, Windows, and MacOSX.
This applies for both 32bit and 64bit and both Ubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS and 20.04 LTS.
Install Oracle JDK:
Download the Linux files (e.g. Linux_X64) from https://java.com/en/download/linux_manual.jsp
Unpack the archive
Note: You can already start JabRef now. Just enter into terminal: "/home/USER/Downloads/jre-8u251-linux-x64/jre1.8.0_251/bin/java -jar /home/USER/Downloads/JabRef-4.3.1.jar" (The path has to match your folder structure)
Register your JRE system-wide
Move the java folder to your preferred location (e.g. /usr/java). The folder structure should look like "/usr/java/jre1.80_251/bin"
Edit "bashrc" with: sudo gedit ~/.bashrc
Insert the following lines and save the file (adjust JAVA_HOME if neccessary):
export JAVA_HOME=/usr/java/jre1.80_251
export PATH=${PATH}:${JAVA_HOME}/bin
Log out and in to your system
Verify your java version (see above): java -version
Start JabRef with: java -jar Path/to/JabRef.jar
Have a look for further instructions.
Just install JavaFX by executing sudo apt-get install openjfx
.
For Ubuntu 18.04 and newer, openjfx
uses the Java version 11 which is currently not supported by JabRef. Hence, use an older version (does not work with Ubuntu 20.04 anymore):
If you accidently installed the new version, remove it with sudo apt purge openjfx
.
Install an older version with sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2
.
To prevent the software updater from installing the newer not supported version, mark it to be not updated with sudo apt-mark hold openjfx libopenjfx-jni libopenjfx-java
.
This also works for Linux Mint 19.1 Tessa which is based on Ubuntu 18.04.
Using the ppa
Add repository: sudo sh -c 'echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" >> /etc/apt/sources.list'
Add GPG key: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
Update package list: sudo apt-get update
Install: sudo apt-get install oracle-java8-installer
Based on: http://tecadmin.net/install-java-8-on-debian/
Directly from Oracle
Download tag.gz-file from the Java SE Development Kit 8 Downloads site
Navigate to the folder where you downloaded the tar.gz-file
Create package with make-jpkg jdk-[Version]-linux-x64.tar.gz
including the most recent Java version instead of[Version]
Get root access with su
Install with dpkg -i oracle-java8-jdk_[Version].deb
Download rpm-file from the Java SE Development Kit 8 Downloads site
Navigate to the folder where you downloaded the rpm-file
Install: rpm -ivh jdk-8u101-linux-x64.rpm
Upgrade: rpm -Uvh jdk-8u101-linux-x64.rpm
Set alternatives: alternatives --config java
(choose Oracle version)
Recent JabRef builds are available at https://build.opensuse.org/package/show/home:cornell_vrdc/jabref3.
Install OpenJDK: sudo dnf install java-1.8.0-openjdk
Install JavaFX (actually OpenJFX): sudo dnf install openjfx java-1.8.0-openjdk-openjfx
Download the JabRef-[version].jar from the JabRef Website.
In the folder of the jar-file run java -jar JabRef-[version].jar
Warning: To install JavaFX, it is not sufficient to just install the openjfx
package. Warning: There is a bug in openjfx
in Fedora 29. JabRef versions newer than 4.3.1 will not work with OpenJDK and Fedora 29 until this is fixed. See also issue 4473.
Download rpm-file from the Java SE Development Kit 8 Downloads site
Install with sudo yum localinstall jre-[Version]-linux-[BIT].rpm
include the most recent Java version for [Version]
and i586
or x64
for [BIT]
depending on your OS version
The necessary Java packages can be installed via "1-click installs":
Two packages are available in the Arch User Repository (AUR):
jabref: The current release
jabref-latest: The latest version from the GitHub master branch
Both packages install precompiled jar files and add a command and a .desktop file to the OS.
The "modern" way:
Install chocolatey by following the steps described at https://chocolatey.org/install
Execute choco install jre8
At any time, you can update to the latest Java runtime environment by executing choco upgrade all
.
The "old" way:
Download exe file from the Java SE Development Kit 8 Downloads site
Run installation wizzard
Download dmg-file from the Java SE Development Kit 8 Downloads site
Run installation wizzard
See the FAQs.
Some users with macOS Sierra have reported freezes when using JabRef. Apparently, adding a host mapping for 127.0.0.1 seems to solve these issues.
Random freezes have also been reported on several Linux distributions. It seems that the GTKLookAndFeel
is causing these problems and selecting a different look and feel class under Options -> Appearance -> Look and Feel
solves the problem.
The connection from JabRef to Libre Office requires some office related jar
-archives to be present. The Windows installer for OpenOffice/LibreOffice automatically installs the required libraries. For Linux you have to install the package libreoffice-java-common
.