【问题标题】:Ignite: ERROR: Java classpath is empty点燃:错误:Java 类路径为空
【发布时间】:2017-12-04 18:55:52
【问题描述】:

我从源代码安装了 ignite。参考:https://apacheignite-cpp.readme.io/docs/getting-started-1

在执行以下命令时:

./modules/platforms/cpp/ignite/ignite

我明白了:

Ignite: ERROR: Java classpath is empty (did you set IGNITE_HOME environment variable?)

但是,我已经使用这个命令设置了 IGNITE_HOME:

export IGNITE_HOME="/home/ec2-user/ignite"

我也尝试过执行:

./modules/platforms/cpp/ignite/ignite -igniteHome="/home/ec2-user/ignite"

但是,我仍然遇到同样的错误

【问题讨论】:

    标签: ignite


    【解决方案1】:

    我已经解决了这个问题。可以通过以下方式解决:

    export IGNITE_NATIVE_TEST_CLASSPATH=true
    

    问题是因为它试图在

    中搜索 jars
    std::string libsPath = home + "/libs";
    

    但是没有创建这个目录。在设置上述环境变量时,它会递归搜索 modules/ 和 examples/ 文件夹中的所有目录以添加 jars。

    【讨论】:

      【解决方案2】:

      您的/home/ec2-user/ignite 目录中有什么?为什么没有libs 目录? IGNITE_HOME 环境变量应该指向您提取二进制包的目录。例如,如果你下载并解压 Ignite 1.5.0.final 二进制包,那么 IGNITE_HOME 应该指向 apache-ignite-fabric-1.5.0.final-bin 目录的根目录。

      更新:

      如果您正在使用源分发,那么您应该将 IGNITE_HOME 变量设置为运行 mvn package 后出现的 target/release-package

      【讨论】:

      • 我必须编译源代码才能使用 cpp 版本的 ignite。所以即使我提取并编译源代码时也没有libs文件夹。
      • 其实cpp版本也包含在二进制包中。您可以在platforms/cpp/ 下找到它。
      • 二进制包中./modules/platforms/cpp/ignite/ignite的等效路径是什么?
      • 当您说./modules/platforms/cpp/ignite/ignite 时,您的意思是二进制吗?在二进制包中有目录platforms/cpp/ignite。您仍然需要构建 cpp 客户端,并且执行此操作时会出现二进制文件。
      • 是的,我的意思是二进制。知道了。谢谢!
      猜你喜欢
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      相关资源
      最近更新 更多