【问题标题】:How to run Netflix Astyanax in linux如何在 Linux 中运行 Netflix Astyanax
【发布时间】:2026-01-14 17:45:01
【问题描述】:

我是在 Linux 环境中运行 Java 代码的新手。我试图让 Astyanax 在 linux 机器上工作。 我按照https://github.com/Netflix/astyanax/wiki/Getting-Started 上的说明进行操作 我已经从github克隆了代码,./gradlew build 运行成功。

我正在尝试在 astyanax 示例中运行 AstClient。我尝试了以下命令:

java -cp "/home/shbash6/astyanax/astyanax-examples/build/libs/;/home/shbash6/astyanax/astyanax-cassandra/build/libs/;/home/shbash6 /astyanax/astyanax-core/build/libs/;/home/shbash6/astyanax/astyanax-thrift/build/libs/" com.netflix.astyanax.examples.AstClient

在持有人: /home/shbash6/astyanax/astyanax-examples/build/classes/main

但我遇到了以下异常:

线程“主”java.lang.NoClassDefFoundError 中的异常:com/netflix/astyanax/examples/AstClient 引起:java.lang.ClassNotFoundException:com.netflix.astyanax.examples.AstClient 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:com.netflix.astyanax.examples.AstClient。程序将退出。

谁能告诉我如何解决这个问题?谢谢!

【问题讨论】:

    标签: java linux command-line cassandra astyanax


    【解决方案1】:

    在 *nix 平台上使用 : 类路径分隔符

    java -cp "/home/shbash6/astyanax/astyanax-examples/build/libs/*:/home/shbash6/astyanax/astyanax-cassandra/build/libs/*:/home/shbash6/astyanax/astyanax-core/build/libs/*:/home/shbash6/astyanax/astyanax-thrift/build/libs/*" com.netflix.astyanax.examples.AstClient
    

    【讨论】:

    • 谢谢,它有效。但是出现了一个新问题: Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory,我在网上查了一下,有人建议使用maven来获取所有需要的jars。
    • 你错过了slf4j-api.jar - 谷歌那个错误信息 - 它有据可查
    • 看来我仍然需要很多其他的 jar 来运行 Astyanax。我在网上查了一下,有人建议使用 maven 来获取所有需要的 jars。对此有何建议?另外,我使用 gradlew 构建代码,它应该具有所有必需的 jar,但我在任何地方都没有找到 slf4j-api.jar。另外,gradle 是否提供了一种简单的方式来运行代码?
    • 其实我忘记在cassandra中包含lib文件夹了。现在它起作用了。谢谢!
    最近更新 更多