@REM arachne launcher script @REM @REM Environment: @REM JAVA_HOME - location of a JDK home dir (optional if java on path) @REM CFG_OPTS - JVM options (optional) @REM Configuration: @REM ARACHNE_config.txt found in the ARACHNE_HOME. @setlocal enabledelayedexpansion @echo off if "%ARACHNE_HOME%"=="" set "ARACHNE_HOME=%~dp0\\.." set "APP_LIB_DIR=%ARACHNE_HOME%\lib\" rem Detect if we were double clicked, although theoretically A user could rem manually run cmd /c for %%x in (!cmdcmdline!) do if %%~x==/c set DOUBLECLICKED=1 rem FIRST we load the config file of extra options. set "CFG_FILE=%ARACHNE_HOME%\ARACHNE_config.txt" set CFG_OPTS= if exist "%CFG_FILE%" ( FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%CFG_FILE%") DO ( set DO_NOT_REUSE_ME=%%i rem ZOMG (Part #2) WE use !! here to delay the expansion of rem CFG_OPTS, otherwise it remains "" for this loop. set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME! ) ) rem We use the value of the JAVACMD environment variable if defined set _JAVACMD=%JAVACMD% if "%_JAVACMD%"=="" ( if not "%JAVA_HOME%"=="" ( if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe" ) ) if "%_JAVACMD%"=="" set _JAVACMD=java rem Detect if this java is ok to use. for /F %%j in ('"%_JAVACMD%" -version 2^>^&1') do ( if %%~j==java set JAVAINSTALLED=1 if %%~j==openjdk set JAVAINSTALLED=1 ) rem BAT has no logical or, so we do it OLD SCHOOL! Oppan Redmond Style set JAVAOK=true if not defined JAVAINSTALLED set JAVAOK=false if "%JAVAOK%"=="false" ( echo. echo A Java JDK is not installed or can't be found. if not "%JAVA_HOME%"=="" ( echo JAVA_HOME = "%JAVA_HOME%" ) echo. echo Please go to echo http://www.oracle.com/technetwork/java/javase/downloads/index.html echo and download a valid Java JDK and install before running arachne. echo. echo If you think this message is in error, please check echo your environment variables to see if "java.exe" and "javac.exe" are echo available via JAVA_HOME or PATH. echo. if defined DOUBLECLICKED pause exit /B 1 ) rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config. set _JAVA_OPTS=%JAVA_OPTS% if "!_JAVA_OPTS!"=="" set _JAVA_OPTS=!CFG_OPTS! rem We keep in _JAVA_PARAMS all -J-prefixed and -D-prefixed arguments rem "-J" is stripped, "-D" is left as is, and everything is appended to JAVA_OPTS set _JAVA_PARAMS= set _APP_ARGS= :param_loop call set _PARAM1=%%1 set "_TEST_PARAM=%~1" if ["!_PARAM1!"]==[""] goto param_afterloop rem ignore arguments that do not start with '-' if "%_TEST_PARAM:~0,1%"=="-" goto param_java_check set _APP_ARGS=!_APP_ARGS! !_PARAM1! shift goto param_loop :param_java_check if "!_TEST_PARAM:~0,2!"=="-J" ( rem strip -J prefix set _JAVA_PARAMS=!_JAVA_PARAMS! !_TEST_PARAM:~2! shift goto param_loop ) if "!_TEST_PARAM:~0,2!"=="-D" ( rem test if this was double-quoted property "-Dprop=42" for /F "delims== tokens=1,*" %%G in ("!_TEST_PARAM!") DO ( if not ["%%H"] == [""] ( set _JAVA_PARAMS=!_JAVA_PARAMS! !_PARAM1! ) else if [%2] neq [] ( rem it was a normal property: -Dprop=42 or -Drop="42" call set _PARAM1=%%1=%%2 set _JAVA_PARAMS=!_JAVA_PARAMS! !_PARAM1! shift ) ) ) else ( if "!_TEST_PARAM!"=="-main" ( call set CUSTOM_MAIN_CLASS=%%2 shift ) else ( set _APP_ARGS=!_APP_ARGS! !_PARAM1! ) ) shift goto param_loop :param_afterloop set _JAVA_OPTS=!_JAVA_OPTS! !_JAVA_PARAMS! :run set "APP_CLASSPATH=%APP_LIB_DIR%\org.geneontology.arachne-1.0.2.jar;%APP_LIB_DIR%\org.scala-lang.scala-library-2.11.11.jar;%APP_LIB_DIR%\org.scalaz.scalaz-core_2.11-7.2.1.jar;%APP_LIB_DIR%\org.apache.jena.jena-tdb-3.2.0.jar;%APP_LIB_DIR%\org.apache.jena.jena-arq-3.2.0.jar;%APP_LIB_DIR%\org.apache.jena.jena-core-3.2.0.jar;%APP_LIB_DIR%\org.slf4j.slf4j-api-1.7.21.jar;%APP_LIB_DIR%\org.apache.jena.jena-iri-3.2.0.jar;%APP_LIB_DIR%\xerces.xercesImpl-2.11.0.jar;%APP_LIB_DIR%\xml-apis.xml-apis-1.4.01.jar;%APP_LIB_DIR%\commons-cli.commons-cli-1.3.jar;%APP_LIB_DIR%\org.apache.jena.jena-base-3.2.0.jar;%APP_LIB_DIR%\org.apache.jena.jena-shaded-guava-3.2.0.jar;%APP_LIB_DIR%\org.apache.commons.commons-csv-1.3.jar;%APP_LIB_DIR%\org.apache.commons.commons-lang3-3.4.jar;%APP_LIB_DIR%\com.github.andrewoma.dexx.collection-0.6.jar;%APP_LIB_DIR%\org.apache.httpcomponents.httpclient-4.5.2.jar;%APP_LIB_DIR%\org.apache.httpcomponents.httpcore-4.4.4.jar;%APP_LIB_DIR%\commons-codec.commons-codec-1.9.jar;%APP_LIB_DIR%\com.github.jsonld-java.jsonld-java-0.9.0.jar;%APP_LIB_DIR%\com.fasterxml.jackson.core.jackson-core-2.7.4.jar;%APP_LIB_DIR%\com.fasterxml.jackson.core.jackson-databind-2.7.4.jar;%APP_LIB_DIR%\com.fasterxml.jackson.core.jackson-annotations-2.7.0.jar;%APP_LIB_DIR%\commons-io.commons-io-2.5.jar;%APP_LIB_DIR%\org.apache.httpcomponents.httpclient-cache-4.5.2.jar;%APP_LIB_DIR%\org.apache.thrift.libthrift-0.9.3.jar;%APP_LIB_DIR%\org.slf4j.jcl-over-slf4j-1.7.21.jar;%APP_LIB_DIR%\org.apache.jena.jena-rdfconnection-3.2.0.jar;%APP_LIB_DIR%\org.geneontology.owl-to-rules_2.11-0.3.2.jar;%APP_LIB_DIR%\net.sourceforge.owlapi.owlapi-distribution-4.2.8.jar;%APP_LIB_DIR%\org.tukaani.xz-1.5.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-model-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-util-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-api-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-languages-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-datatypes-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-binary-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-n3-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-turtle-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-nquads-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-ntriples-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-rdfjson-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-rdfxml-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-trix-2.7.16.jar;%APP_LIB_DIR%\org.openrdf.sesame.sesame-rio-trig-2.7.16.jar;%APP_LIB_DIR%\com.github.jsonld-java.jsonld-java-sesame-0.5.0.jar;%APP_LIB_DIR%\org.semarglproject.semargl-sesame-0.6.1.jar;%APP_LIB_DIR%\org.semarglproject.semargl-core-0.6.1.jar;%APP_LIB_DIR%\org.semarglproject.semargl-rdfa-0.6.1.jar;%APP_LIB_DIR%\org.semarglproject.semargl-rdf-0.6.1.jar;%APP_LIB_DIR%\net.sf.trove4j.trove4j-3.0.3.jar;%APP_LIB_DIR%\com.google.guava.guava-18.0.jar;%APP_LIB_DIR%\com.google.inject.guice-4.0.jar;%APP_LIB_DIR%\javax.inject.javax.inject-1.jar;%APP_LIB_DIR%\aopalliance.aopalliance-1.0.jar;%APP_LIB_DIR%\com.google.inject.extensions.guice-assistedinject-4.0.jar;%APP_LIB_DIR%\com.google.inject.extensions.guice-multibindings-4.0.jar;%APP_LIB_DIR%\com.google.code.findbugs.jsr305-2.0.1.jar;%APP_LIB_DIR%\org.phenoscape.scowl_2.11-1.2.1.jar;%APP_LIB_DIR%\com.typesafe.scala-logging.scala-logging_2.11-3.4.0.jar;%APP_LIB_DIR%\org.scala-lang.scala-reflect-2.11.11.jar;%APP_LIB_DIR%\ch.qos.logback.logback-classic-1.1.7.jar;%APP_LIB_DIR%\ch.qos.logback.logback-core-1.1.7.jar;%APP_LIB_DIR%\org.codehaus.groovy.groovy-all-2.4.6.jar;%APP_LIB_DIR%\org.backuity.clist.clist-core_2.11-3.2.2.jar" set "APP_MAIN_CLASS=org.geneontology.rules.cli.Main" if defined CUSTOM_MAIN_CLASS ( set MAIN_CLASS=!CUSTOM_MAIN_CLASS! ) else ( set MAIN_CLASS=!APP_MAIN_CLASS! ) rem Call the application and pass all arguments unchanged. "%_JAVACMD%" !_JAVA_OPTS! !ARACHNE_OPTS! -cp "%APP_CLASSPATH%" %MAIN_CLASS% !_APP_ARGS! @endlocal :end exit /B %ERRORLEVEL%