INFO:root:Starting JabRef backend
INFO:root:Starting JabRef backend
INFO:root:Got length: 455 bytes to be read
INFO:root:Got message of 455 chars
INFO:root:Successfully retrieved JSON
INFO:root:{"text":"\n@misc{noauthor_latest_nodate,\n\ttitle = {Latest {Help} topics},\n\turl = {https://discourse.jabref.org/c/help/7},\n\tabstract = {This is the place to ask questions and request help on using JabRef. If you have found a bug, please report it at {\\textless}a href=\"https://github.com/JabRef/jabref/issues\"{\\textgreater}GitHub{\\textless}/a{\\textgreater}.},\n\tlanguage = {en},\n\turldate = {2022-03-19},\n\tjournal = {Forum - JabRef},\n}\n"}
INFO:root:{'text': '\n@misc{noauthor_latest_nodate,\n\ttitle = {Latest {Help} topics},\n\turl = {https://discourse.jabref.org/c/help/7},\n\tabstract = {This is the place to ask questions and request help on using JabRef. If you have found a bug, please report it at {\\textless}a href="https://github.com/JabRef/jabref/issues"{\\textgreater}GitHub{\\textless}/a{\\textgreater}.},\n\tlanguage = {en},\n\turldate = {2022-03-19},\n\tjournal = {Forum - JabRef},\n}\n'}
INFO:root:Try to execute command ['/home/a/.nix-profile/bin/jabref', '--importBibtex', '\n@misc{noauthor_latest_nodate,\n\ttitle = {Latest {Help} topics},\n\turl = {https://discourse.jabref.org/c/help/7},\n\tabstract = {This is the place to ask questions and request help on using JabRef. If you have found a bug, please report it at {\\textless}a href="https://github.com/JabRef/jabref/issues"{\\textgreater}GitHub{\\textless}/a{\\textgreater}.},\n\tlanguage = {en},\n\turldate = {2022-03-19},\n\tjournal = {Forum - JabRef},\n}\n']
INFO:root:Called JabRef and got: b"/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 238: @misc{noauthor_latest_nodate,: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 239: title: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 240: url: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 241: abstract: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 242: language: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 243: urldate: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: line 244: journal: command not found\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: eval: line 245: syntax error near unexpected token `}'\n/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped: eval: line 245: `}'\nWARNING: Unknown module: test2 specified to --patch-module\nWARNING: Unknown module: test3 specified to --patch-module\nWARNING: Unknown module: test specified to --patch-module\n2022-03-19 07:56:03 [JavaFX Application Thread] org.jabref.logic.net.URLDownload.bypassSSLVerification()\nWARN: Fix SSL exceptions by accepting ALL certificates\n2022-03-19 07:56:03 [JavaFX Application Thread] org.jabref.gui.JabRefMain.start()\nERROR: Problem parsing arguments: org.apache.commons.cli.MissingArgumentException: Missing argument for option: ib\n\tat commons.cli@1.5.0/org.apache.commons.cli.DefaultParser.checkRequiredArgs(DefaultParser.java:231)\n\tat commons.cli@1.5.0/org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:717)\n\tat commons.cli@1.5.0/org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:665)\n\tat org.jabref@5.5/org.jabref.cli.JabRefCLI.<init>(JabRefCLI.java:27)\n\tat org.jabref@5.5/org.jabref.cli.ArgumentProcessor.<init>(ArgumentProcessor.java:79)\n\tat org.jabref@5.5/org.jabref.gui.JabRefMain.start(JabRefMain.java:74)\n\tat javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)\n\tat javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)\n\tat javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController.java:399)\n\tat javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)\n\tat javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)\n\tat javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)\n\tat javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:290)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\nusage: jabref [OPTIONS] [BIBTEX_FILE]\n\nOptions: [-a <FILE[.aux],FILE[.bib] FILE>] [-asfl] [-b] [--console] [-d <KEY1[,KEY2][,KEYn] | all>]\n [--debug] [--embeddBibfileInPdf <CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all>]\n [-f <FETCHER:QUERY>] [-g] [-h] [-i <FILE[,FORMAT]>] [-ib <BIBTEXT_STRING>] [--importToOpen\n <FILE[,FORMAT]>] [-m <QUERY,FILE[,FORMAT]>] [-n] [-o <FILE[,FORMAT]>] [-p <[FILE]>] [-v] [-w\n <CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all>] [--writeXMPtoPdf\n <CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all>] [-x <[FILE]>]\n -a,--aux <FILE[.aux],FILE[.bib] FILE> Sublibrary\n from AUX to\n BibTeX: '-a\n thesis.aux,ne\n w.bib'\n -asfl,--automaticallySetFileLinks \xe8\x87\xaa\xe5\x8a\xa8\xe8\xae\xbe\xe7\xbd\xae\xe6\x96\x87\xe4\xbb\xb6\xe9\x93\xbe\xe6\x8e\xa5\n -b,--blank \xe5\x90\xaf\xe5\x8a\xa8\xe6\x97\xb6\xe4\xb8\x8d\xe6\x89\x93\xe5\xbc\x80\xe4\xbb\xbb\xe4\xbd\x95\xe6\x96\x87\xe4\xbb\xb6\n --console Show console\n output (only\n when the\n launcher is\n used)\n -d,--prdef <KEY1[,KEY2][,KEYn] | all> \xe9\x87\x8d\xe7\xbd\xae\xe6\x89\x80\xe6\x9c\x89\xe9\xa6\x96\xe9\x80\x89\xe9\xa1\xb9: '-d\n mainFontSize,\n newline' or\n '-d all'\n --debug \xe6\x98\xbe\xe7\xa4\xba\xe8\xb0\x83\xe8\xaf\x95\xe7\xba\xa7\xe5\x88\xab\xe6\xb6\x88\xe6\x81\xaf\n --embeddBibfileInPdf <CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all>\n \xe5\x9c\xa8PDF\xe6\x96\x87\xe4\xbb\xb6\xe4\xb8\xad\xe5\xb5\x8c\xe5\x85\xa5BibT\n eX\xe6\x9d\xa1\xe7\x9b\xae: '-w\n pathToMyOwnPa\n per.pdf'\n -f,--fetch <FETCHER:QUERY> Run fetcher:\n '-f\n Medline/PubMe\n d:cancer'\n -g,--generateCitationKeys \xe9\x87\x8d\xe6\x96\xb0\xe7\x94\x9f\xe6\x88\x90 BibTeX\n \xe6\x96\x87\xe4\xbb\xb6\xe4\xb8\xad\xe6\x89\x80\xe6\x9c\x89\xe8\xae\xb0\xe5\xbd\x95\xe7\x9a\x84\xe9\x94\xae\xe5\x80\xbc\n -h,--help \xe7\x94\xa8\xe5\x91\xbd\xe4\xbb\xa4\xe8\xa1\x8c\xe9\x80\x89\xe9\xa1\xb9\xe6\x98\xbe\xe7\xa4\xba\xe5\xb8\xae\xe5\x8a\xa9\n -i,--import <FILE[,FORMAT]> \xe5\xaf\xbc\xe5\x85\xa5\xe6\x96\x87\xe4\xbb\xb6: '-i\n library.bib'\n -ib,--importBibtex <BIBTEXT_STRING> Import\n BibTeX: '-ib\n @article{entr\n y}'\n --importToOpen <FILE[,FORMAT]> Same as\n --import, but\n will be\n imported to\n the opened\n tab\n -m,--exportMatches <QUERY,FILE[,FORMAT]> Matching: '-i\n db.bib -m\n author=Newton\n ,search.htm,h\n tml'\n -n,--nogui \xe6\xb2\xa1\xe6\x9c\x89\n GUI\xe3\x80\x82\xe4\xbb\x85\xe5\xa4\x84\xe7\x90\x86\xe5\x91\xbd\xe4\xbb\xa4\xe8\xa1\x8c\xe9\x80\x89\xe9\xa1\xb9\n -o,--output <FILE[,FORMAT]> Export an\n input to a\n file: '-i\n db.bib -o\n db.htm,html'\n -p,--primp <[FILE]> \xe4\xbb\x8e\xe6\x96\x87\xe4\xbb\xb6\xe4\xb8\xad\xe5\xaf\xbc\xe5\x85\xa5\xe9\xa6\x96\xe9\x80\x89\xe9\xa1\xb9:\n '-p\n prefs.xml'\n -v,--version \xe6\x98\xbe\xe7\xa4\xba\xe7\x89\x88\xe6\x9c\xac\n -w,--writeMetadatatoPdf <CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all>\n \xe5\xb0\x86BibTeX\xe6\x9d\xa1\xe7\x9b\xae\xe4\xbd\x9c\xe4\xb8\xba\xe5\x85\x83\xe6\x95\xb0\n \xe6\x8d\xae\xe5\x86\x99\xe5\x85\xa5PDF: '-w\n pathToMyOwnPa\n per.pdf'\n --writeXMPtoPdf <CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all> \xe5\xb0\x86 BibTeX \xe6\x9d\xa1\xe7\x9b\xae\xe4\xbd\x9c\xe4\xb8\xba\n XMP \xe5\x85\x83\xe6\x95\xb0\xe6\x8d\xae\xe5\x86\x99\xe5\x85\xa5 PDF\n \xe4\xb8\xad: '-w\n pathToMyOwnPa\n per.pdf'\n -x,--prexp <[FILE]> \xe5\xaf\xbc\xe5\x87\xba\xe9\xa6\x96\xe9\x80\x89\xe9\xa1\xb9\xe5\x88\xb0\xe6\x96\x87\xe4\xbb\xb6: '-x\n prefs.xml'\n\n\xe5\x8f\xaf\xe7\x94\xa8\xe7\x9a\x84\xe5\xaf\xbc\xe5\x85\xa5\xe6\xa0\xbc\xe5\xbc\x8f:\n BibTeX : bibtex\n BibTeXML : bibtexml\n Biblioscape : biblioscape\n CFF : cff\n Copac : cpc\n EndNote XML : endnote\n INSPEC : inspec\n ISI : isi\n MODS : mods\n MSBib : msbib\n Medline/PubMed : medline\n Medline/PubMed Plain : medlineplain\n Ovid : ovid\n PDFcontent : pdfcontent\n PDFembeddedbibfile : pdfembeddedbibfile\n PDFmergemetadata : pdfmergemetadata\n PdfVerbatimBibText : pdfverbatimbibtext\n REPEC New Economic Papers (NEP) : repecnep\n RIS : ris\n Refer/Endnote : refer\n SilverPlatter : silverplatter\n XMP\xe6\xb3\xa8\xe9\x87\x8a\xe7\x9a\x84PDF\xe6\x96\x87\xe6\xa1\xa3 : xmp\n\n\xe5\x8f\xaf\xe7\x94\xa8\xe7\x9a\x84\xe5\xaf\xbc\xe5\x87\xba\xe6\xa0\xbc\xe5\xbc\x8f: html, simplehtml, docbook5, docbook4, din1505,\nbibordf, tablerefs, listrefs, tablerefsabsbib, harvard, iso690rtf,\niso690txt, endnote, oocsv, ris, misq, yaml, bibtexml, oocalc, ods,\nMSBib, mods, xmp, pdf, bib\n\nPlease report issues at https://github.com/JabRef/jabref/issues.\n"
The jebref is wrapped in shell scripts. The origin script is unchanged.
#!/nix/store/4nmqxajzaf60yjribkgvj5j54x9yvr1r-bash-5.1-p12/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
#
# JabRef start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh JabRef
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and JAB_REF_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
APP_ARGS=`echo "$@"`
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
APP_HOME=$( cd "${APP_HOME:-./}.." && pwd -P ) || exit
APP_NAME="JabRef"
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and JAB_REF_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"--add-exports" "javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls" "--add-exports" "org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref" "--add-exports" "javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls" "--add-exports" "javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls" "--add-exports" "javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls" "--add-exports" "javafx.graphics/com.sun.javafx.css=org.controlsfx.controls" "--add-exports" "javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls" "--add-exports" "javafx.base/com.sun.javafx.event=org.controlsfx.controls" "--add-exports" "javafx.base/com.sun.javafx.collections=org.controlsfx.controls" "--add-exports" "javafx.base/com.sun.javafx.runtime=org.controlsfx.controls" "--add-exports" "javafx.web/com.sun.webkit=org.controlsfx.controls" "--add-opens" "javafx.controls/javafx.scene.control=org.jabref" "--add-opens" "org.controlsfx.controls/org.controlsfx.control.textfield=org.jabref" "--add-opens" "javafx.controls/com.sun.javafx.scene.control=org.jabref" "--add-opens" "javafx.controls/javafx.scene.control.skin=org.controlsfx.controls" "--add-opens" "javafx.graphics/javafx.scene=org.controlsfx.controls" "--add-opens" "javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix" "--add-opens" "javafx.base/com.sun.javafx.binding=com.jfoenix" "--add-opens" "javafx.graphics/com.sun.javafx.stage=com.jfoenix" "--add-opens" "javafx.base/com.sun.javafx.event=com.jfoenix" "--patch-module" "test2=$APP_HOME/patchlibs/fastparse-utils_2.12-1.0.0.jar" "--patch-module" "test3=$APP_HOME/patchlibs/sourcecode_2.12-0.1.4.jar" "--patch-module" "test=$APP_HOME/patchlibs/fastparse_2.12-1.0.0.jar" "--module-path" "$APP_HOME/lib" "--module" "org.jabref/org.jabref.gui.JabRefLauncher"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH="\\\"\\\""
MODULE_PATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and JAB_REF_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
MODULE_PATH=$( cygpath --path --mixed "$MODULE_PATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $JAB_REF_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
-classpath "$CLASSPATH" \
--module-path "$MODULE_PATH" \
--module org.jabref/org.jabref.gui.JabRefLauncher \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $JAB_REF_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
eval set -- $JAVA_OPTS $JAB_REF_OPTS $DEFAULT_JVM_OPTS "$APP_ARGS"
exec "$JAVACMD" "$@"
The wrapped on NixOS is
#! /nix/store/4nmqxajzaf60yjribkgvj5j54x9yvr1r-bash-5.1-p12/bin/bash -e
PATH=${PATH:+':'$PATH':'}
PATH=${PATH/':''/nix/store/4di3klf3a3xn5hw1w0lmv2m5msi4q3h3-xdg-utils-unstable-2020-10-21/bin'':'/':'}
PATH='/nix/store/4di3klf3a3xn5hw1w0lmv2m5msi4q3h3-xdg-utils-unstable-2020-10-21/bin'$PATH
PATH=${PATH#':'}
PATH=${PATH%':'}
export PATH
export JAVA_HOME='/nix/store/yirggs7jnyxbhdmk342f6an4ifkgmbgv-openjdk-17.0.1+12'
export JAVA_OPTS='-Djava.library.path=/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/lib/ --patch-module org.jabref=/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/share/java/jabref/resources/main'
exec -a "$0" "/nix/store/yikfmp773yp290jpdzih4m5xal78l37b-jabref-5.5/bin/.JabRef-wrapped" "$@"