【发布时间】:2019-01-20 06:44:10
【问题描述】:
【问题讨论】:
-
你有什么精确的 Cassandra 和 Java 版本 - 带有 subversions...
标签: windows cassandra windows-10 cassandra-3.0
【问题讨论】:
标签: windows cassandra windows-10 cassandra-3.0
查看文件后,powershell脚本cassandra-env.ps1执行以下功能:
if (Test-Path Env:\JAVA_HOME)
{
$env:JAVA_BIN = "$env:JAVA_HOME\bin\java.exe"
}
elseif (Get-Command "java.exe")
{
$env:JAVA_BIN = "java.exe"
}
else
{
echo "ERROR! No JAVA_HOME set and could not find java.exe in the path."
exit
}
我不是 Cassandra 方面的专家,但如果我是你,我会运行这个脚本并确保 $env:JAVA_BIN 设置正确,然后我会跟踪它并检查
conf\cassandra-env.ps1 文件中的 ParseJVMInfo 函数会在您的设置中引发错误。
更新: 检查 JAVA_HOME 环境变量并查看它是否设置使得 [JAVA_HOME]\bin\java.exe 存在。
【讨论】:
不要将 Cassandra 安装到名称中有空格的目录中。 Windows 的启动脚本存在此类名称的问题。
在进一步调查后更新:
更精确地查看代码,它似乎无法使用给定的命令行开关启动 Java:-d64 -version - Java 可执行文件不在 PATH 中,或者-d64 开关不在支持您的 Java 版本 - 例如,如果您安装了 32 位版本的 Java。请尝试从命令行运行java -d64 -version 以检查它是否有效
【讨论】:
cassandra.sh 和cassandra.ps1 提供了一个补丁来解决这个问题,但我现在找不到它,虽然我认为我已经为它提交了JIRA .. .我认为Linux版本的文件名称中有空格也有问题,但并不常见。
在我的情况下,我更新了我的 java 版本并在系统环境中添加了最新版本,并在 cassandra 特定路径(C:\Program Files\apache-cassandra-3.11.6\bin)中以管理员身份运行此命令。
cassandra.bat -f
它运行完美!!
并确保您必须允许执行 PowerShell 脚本。对于这个检查这个 https://www.howtogeek.com/106273/how-to-allow-the-execution-of-powershell-scripts-on-windows-7/
【讨论】:
实际上,它与路径无关... 它是关于为您尝试访问的路径提供适当的访问/特权,这与 Windows 上的 UAC 设置有关,尝试将其最小化并通过单击文件夹属性并授予用户权限来确保您具有正确的访问权限或每个人都可以访问此路径读取/更改或完全控制。
所以你不必卸载任何东西:)
【讨论】: