You'll need to white list the semi-colon which Galaxy has replaced as a security precaution (user free text can be exploited). See <sanitizer> here: https://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax Peter
Thanks: adding : <sanitizer> <valid initial="string.printable"> <remove value="'"/> </valid> </sanitizer> fixed the probem.
Could you confirm if the environment variable is being set now?
Hum the variable is not set , I've changed <command> to <command><![CDATA[echo "JVARKITDIR=\$JVARKITDIR expression=${expression} " > /tmp/error7.txt && java -cp \$JVARKITDIR/commons-jexl-2.1.1.jar:\$JVARKITDIR/commons-logging-1.1.1.jar:\$JVARKITDIR/htsjdk-1.129.jar:\$JVARKITDIR/snappy-java-1.0.3-rc3.jar:\$JVARKITDIR/vcffilterjs.jar com.github.lindenb.jvarkit.tools.vcffilterjs.VCFFilterJS -e '${expression}' -o ${output} ${input} 2>> /tmp/error7.txt ]]> here is the content of tmp/error7.txt $ cat /tmp/error7.txt JVARKITDIR= expression=variant!=null; Error: Could not find or load main class com.github.lindenb.jvarkit.tools.vcffilterjs.VCFFilterJS P.