【问题标题】:Cassandra - "The system cannot find the file specified"Cassandra - “系统找不到指定的文件”
【发布时间】:2019-01-20 06:44:10
【问题描述】:

我在 Windows 10 上安装了 Cassandra,现在当我尝试使用“cassandra”运行它时,出现以下错误:

有什么想法吗?

【问题讨论】:

  • 你有什么精确的 Cassandra 和 Java 版本 - 带有 subversions...

标签: windows cassandra windows-10 cassandra-3.0


【解决方案1】:

查看文件后,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 存在

【讨论】:

  • JAVA_HOME 设置为 C:\Program Files\Java\jdk1.8.0_181 并且 JAVA_BIN 设置为 C:\Program Files\Java\jdk1.8.0_181\bin\java.exe
  • 如何运行你写的脚本?
  • 我没有写任何脚本,它们已经是 Cassandra 包的一部分。您可以在 powershell 窗口中运行它。在 powershell 窗口中,您可以从 ParseJVMInfo 函数复制脚本并尝试运行它。 (您可以在 [Cassandra]\conf\cassandra-env.ps1 位置找到它)
  • @Alon 等等,如果您的路径设置正确,那么您为什么要在 D:\Program Files 上运行 Cassandra?你的 java 文件不应该也在 D:\ 中吗?
  • 我不应该在每个驱动器上都安装 Java。如果环境变量设置正确,它应该可以在其他驱动器上工作。
【解决方案2】:

不要将 Cassandra 安装到名称中有空格的目录中。 Windows 的启动脚本存在此类名称的问题。

在进一步调查后更新:

更精确地查看代码,它似乎无法使用给定的命令行开关启动 Java:-d64 -version - Java 可执行文件不在 PATH 中,或者-d64 开关不在支持您的 Java 版本 - 例如,如果您安装了 32 位版本的 Java。请尝试从命令行运行java -d64 -version 以检查它是否有效

【讨论】:

  • 好收获!我确信 Windows 上的 Cassandra 适合喜欢折磨自己的人。哈哈。
  • 我在某处为cassandra.shcassandra.ps1 提供了一个补丁来解决这个问题,但我现在找不到它,虽然我认为我已经为它提交了JIRA .. .我认为Linux版本的文件名称中有空格也有问题,但并不常见。
  • 我在 D:\Software\DataStax-DDC\apache-cassandra 重新安装了它,它一直抛出同样的错误。
  • java -d64 -version 打印“无法识别的选项:-d64”,java -d32 -version 也是如此
  • 好的——这解释一下——你需要检查你是如何安装Java的——你有JRE还是JDK?不幸的是,我不熟悉 Windows
【解决方案3】:

在我的情况下,我更新了我的 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/

【讨论】:

    【解决方案4】:

    实际上,它与路径无关... 它是关于为您尝试访问的路径提供适当的访问/特权,这与 Windows 上的 UAC 设置有关,尝试将其最小化并通过单击文件夹属性并授予用户权限来确保您具有正确的访问权限或每个人都可以访问此路径读取/更改或完全控制。

    所以你不必卸载任何东西:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-21
      • 2023-03-17
      • 2017-12-21
      • 2015-09-28
      • 2015-11-08
      • 2018-08-26
      • 2014-03-24
      相关资源
      最近更新 更多