我在eclipse中有一个代码,我已经成功建立了cassandra连接。连接成功完成,但我看到eclipse中的大红色按钮已经开始了,但是过程尚未完成。我想关闭红色按钮作为正常代码的执行 确实。这是我的代码......
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
public class MyConnection{
private Cluster cluster;
public void connect(String node) {
cluster = Cluster.builder().addContactPoint(node).build();
Metadata metadata = cluster.getMetadata();
System.out.println("Cassandra connection established");
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.shutdown();
}
public static void main(String[] args) {
MyConnection c = new MyConnection();
c.connect("127.0.0.1");
c.close();
}
}
这是代码。有人请帮忙..
答案 0 :(得分:0)
不太确定eclips正在做什么,但在intelliJ中运行相同的代码(slightly modified),并且该过程在它自己完成,这是输出:
log4j:WARN No appenders could be found for logger (com.datastax.driver.core.ControlConnection).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Cassandra connection established
Connected to cluster: Test Cluster
Datatacenter: datacenter1; Host: /127.0.0.1; Rack: rack1
Process finished with exit code 0
然后我尝试了以下内容:
所有三个案例都导致错误,但代码仍然自行退出。
cluster.shutdown();
是正确的,以清除com.datastax.driver.core.Cluster
对象使用的连接。使用System.exit(0)
会杀死进程,但它被认为是不好的做法。此代码应自行执行和完成。我的建议是,检查运行(执行)设置,查看可能与您的应用程序交互/干扰的任何内容。
答案 1 :(得分:-1)
尝试:
System.exit(0);
这将关闭红色按钮: - )