java - 独立 Neo4j 服务器的附加类路径
问题描述
我们想要运行需要外部 JAR 和配置的 neo4j 扩展(REST API)。
尽管我们可以将 jars 添加到{NEO4J_HOME}/plugin/
目录中,但我们希望依赖于已经设置好的环境,包括(例如)一些/opt/product/lib/
和/var/opt/product/conf/
文件夹。
这在使用 Embedded Neo4j Server 时当然非常简单,但是在使用 Standalone Neo4j Server 时如何做同样的事情呢?
我们能做到吗?通过配置?通过任何幕后技巧?
注意:我们使用的是 Neo4j v3.2+,它使用 PowerShell 脚本启动。
解决方案
通过像这样编辑Get-Java.ps1
PowerShell 脚本:
# Parse Java config settings - Additional ClassPath
$option = (Get-Neo4jSetting -Name 'dbms.jvm.additional.classpath' -Neo4jServer $Neo4jServer)
$ClassPath="$ClassPath;$([System.Environment]::ExpandEnvironmentVariables($option.Value))"
Write-Warning "WARNING: using classpath: $ClassPath";
$ShellArgs = @("-cp `"$($ClassPath)`""`
,'-server' `
,'-Dlog4j.configuration=file:conf/log4j.properties' `
,'-Dneo4j.ext.udc.source=zip-powershell' `
,'-Dorg.neo4j.cluster.logdirectory=data/log' `
#,'-agentlib:jdwp=transport=dt_socket,address=8998,server=y' `
)
并添加以下配置neo4j.conf
:
#********************************************************************
# JVM Parameters
#********************************************************************
dbms.jvm.additional.classpath=%MY_PRODUCT%/lib/*;%MY_PRODUCT%/conf/*
但如前所述,这需要手动编辑 Neo4j PowerShell 脚本,这不太可靠。
可以将其添加为受支持的选项吗?
推荐阅读
- visual-c++ - 为什么这个 Direct2D 几何组不填充
- r - jsonlite toJSON 在对象周围添加多余的引号
- google-colaboratory - 在 Google 协作中,我得到了 IOPub 数据速率超出
- rust - 如何修改文件的内容而不是在 Rust 中添加到文件中?
- windows - 读取编码文件
- android - 单选按钮在 radiobutton.setChecked(false) 之后取消选中自身
- algorithm - 按此向量中的映射成员对对象向量进行排序
- ubuntu - 如何检查您使用的是什么版本的 SilverStripe 插件?
- reactjs - 选择未出现的 React Component 数据选项
- javascript - Javascript Promises:当涉及到 javascript 远程调用时,你如何链接结果?