Windows 10 上的 JanusGraph 运行

Does JanusGraph run on Windows 10

Windows10、janusgraph-0.2.0-hadoop2.

我已经把 winutils.exe 放在 bin 文件夹里了。

P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\bin>gremlin-server.bat
Error: Could not find or load main class Files

我快速查看了 bat 脚本并添加了一些 echo 语句:

echo "%1"

IF "%1" == "-i" ( 
    GOTO install
) else (
    GOTO server
)

:: Start the Gremlin Server

:server

IF "%1" == "" (
  SET GREMLIN_SERVER_YAML=%JANUSGRAPH_HOME%\conf\gremlin-server\gremlin-server.yaml
) ELSE (
  SET GREMLIN_SERVER_YAML=%1
)

java %JAVA_OPTIONS% %JAVA_ARGS% -cp %CP% org.apache.tinkerpop.gremlin.server.GremlinServer %GREMLIN_SERVER_YAML%

echo %JAVA_OPTIONS%
echo %JAVA_ARGS%
echo %CP%
echo %GREMLIN_SERVER_YAML%
echo "call to GremlinServer"

输出:

P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\bin>gremlin-server.bat
.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\slf4j-log4j12-1.7.12.jar;;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-all-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-berkeleyje-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-bigtable-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-cassandra-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-core-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-cql-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-es-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-hadoop-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-hbase-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-lucene-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-solr-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\*;
""
Error: Could not find or load main class Files
-Xms32m -Xmx512m  -Djanusgraph.logdir=P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\log  -Dtinkerpop.ext=P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\ext  -Dlogback.configurationFile=conf\logback.xml  -Dlog4j.configuration=file:/P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\conf\gremlin-server\log4j-server.properties  -Dlog4j.debug=true  -Dgremlin.log4j.level=WARN  -javaagent:P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\jamm-0.3.0.jar  -Dgremlin.io.kryoShimService=org.janusgraph.hadoop.serialize.JanusGraphKryoShimService
ECHO is off.
.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\slf4j-log4j12-1.7.12.jar;;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-all-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-berkeleyje-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-bigtable-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-cassandra-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-core-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-cql-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-es-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-hadoop-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-hbase-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-lucene-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\janusgraph-solr-0.2.0.jar;P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\lib\*;
P:\Software\DB\NoSQL\janusgraph-0.2.0-hadoop2\conf\gremlin-server\gremlin-server.yaml
"call to GremlinServer"

这个问题也在 janusgraph-users Google 群里被问到,我把我的答案复制到这里:

JanusGraph does run on Windows 10. The user experience is not ideal, and could use some help with people with Windows expertise. I've opened up issue 950 to track making the prepackaged distribution more Windows-friendly.

Your problem is probably coming from your CLASSPATH variable, and I'd think that ".;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip;" is messing it up because of the spaces in the path. Try unsetting the CLASSPATH before running gremlin-server.bat.

The default Gremlin Server configuration uses janusgraph-cassandra-es-server.properties because the pre-packaged distribution bin/janusgraph.sh start will start a single node Cassandra, a single node Elasticsearch, and the Gremlin Server. If you want to run with Cassandra, you could go a version directly from the Apache Cassandra site or a Datastax distribution if you want to go with an MSI installer. If you're not interested in using Cassandra, you could change the gremlin-server.yaml to use the janusgraph-berkeleyje-server.properties which is pretty good for getting started.