java cassandra连接java.lang.ClassNotFoundException:com.datastax.driver.core.Cluster - java

我正在尝试使用datastax驱动程序连接到Cassandra。
到目前为止,我只是尝试运行教程中提供的SimpleClient应用程序,但遇到了麻烦。

这是例外

Exception in thread "main" java.lang.NoClassDefFoundError: com/datastax/driver/core/Cluster
    at com.cass.App.connect(App.java:17)
    at com.cass.App.main(App.java:34)
Caused by: java.lang.ClassNotFoundException: com.datastax.driver.core.Cluster
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 2 more

这是我的Maven文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.cass</groupId>
  <artifactId>Connector</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Connector</name>
  <url>http://maven.apache.org</url>
  <dependencies>
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.0.25.Final</version>
</dependency>
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>18.0</version>
</dependency>
<dependency>
    <groupId>com.yammer.metrics</groupId>
    <artifactId>metrics-core</artifactId>
    <version>2.2.0</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
</dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-core</artifactId>
  <version>2.0.1</version>
</dependency>

  </dependencies>
<build>
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
      </plugins>
    </build>
</project>

这是我的java文件

package com.cass;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;

/**
 * Generate a unique number
 *
 */
public class App 
{

    private Cluster cluster;

public void connect(String node) {
      cluster = Cluster.builder()
            .addContactPoint(node).build();
      Metadata metadata = cluster.getMetadata();
      System.out.printf("Connected to cluster: %s\n", 
            metadata.getClusterName());
      for ( Host host : metadata.getAllHosts() ) {
         System.out.printf("Datatacenter: %s; Host: %s; Rack: %s\n",
               host.getDatacenter(), host.getAddress(), host.getRack());
      }
   }

   public void close() {
      cluster.close();
   }

   public static void main(String[] args) {
      App client = new App();
      client.connect("127.0.0.1");
      client.close();
   }
}

我是Maven和Cassandra的新手。

编辑-这是一个愚蠢的错误,没有在cp中包含依赖项的快照java -cp target/CassandraTest2-1.0-SNAPSHOT-jar-with-dependencies.jar com.Test.App

参考方案

好的问题是所需的jar不在类路径中,或者当您从命令提示符运行时,它无法找到这些jar。

分隔符;用于windows。在Unix systems上,您应该使用:
请点击这两个链接,对类似问题进行解答。

java -cp jar1:jar2:jar3:dir1:. MyProgram

Link1和link2

Java App中的SSH具有“期望”之类的功能 - java

Improve this question 使用“期望”,可以执行SSH命令并解析这些命令的输出以更改程序流。我想用Java做到这一点。也就是说,我希望我的Java应用程序启动SSH会话,在远程服务器上执行命令,并依靠该命令的输出执行下一个命令,而无需启动新的SSH会话。这在Java中可行吗?谢谢 参考方案 自我推广我的项目:在查看了其他基于Java的Exp…

Java BlackBerry-如何使用GET方法正确调用php脚本? - java

大家好吗?我正在为BlackBerry Curve 8520做一个非常简单的游戏,我需要从服务器获取排名。为了获取此数据,Web程序员给了我php文件,该文件从数据库获取数据并将其作为动态xml文件返回。我的问题是:如何使用Java代码加载该php文件?如何将get参数传递给该请求?我如何解析从php脚本检索到的xml?提前致谢!弗朗西斯科 参考方案 您这里…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…