错误:包com.google.common.base不存在

gre*_*ity 13 java intellij-idea

给出java中的以下代码,在编译时你有很多错误:


Main.java:1:错误:包com.google.common.base不存在导入com.google.common.base.Preconditions; ^

Main.java:2:错误:包com.google.common.collect不存在导入com.google.common.collect.Lists; ^

Main.java:3:错误:包org.ros.exception不存在import org.ros.exception.RosRuntimeException; ^

Main.java:4:错误:包org.ros.internal.loader不存在import org.ros.internal.loader.CommandLineLoader; ^

Main.java:5:错误:包org.ros.node不存在import org.ros.node.DefaultNodeMainExecutor; ^

Main.java:6:错误:包org.ros.node不存在import org.ros.node.NodeConfiguration; ^

Main.java:7:错误:包org.ros.node不存在import org.ros.node.NodeMainExecutor;

我通过IntelliJ运行它.有谁知道为什么它不起作用?

import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import org.ros.exception.RosRuntimeException;
import org.ros.internal.loader.CommandLineLoader;
import org.ros.node.DefaultNodeMainExecutor;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeMainExecutor;

// This class will run a publisher and subscriber, and relay data between them.

public class Main {

static private Talker pubNodeMain;

static private Listener subNodeMain;

public static void main(String[] argv) throws Exception {
    // Set up the executor for both of the nodes
    NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault();

    // Load the publisher
    String[] pubArgv = {"Talker"};
    CommandLineLoader pubLoader = new CommandLineLoader(Lists.newArrayList(pubArgv));
    String nodeClassName = pubLoader.getNodeClassName();
    System.out.println("Loading node class: " + pubLoader.getNodeClassName());
    NodeConfiguration pubNodeConfiguration = pubLoader.build();

    try {
        pubNodeMain = (Talker) pubLoader.loadClass(nodeClassName);
    } catch (ClassNotFoundException e) {
        throw new RosRuntimeException("Unable to locate node: " + nodeClassName, e);
    } catch (InstantiationException e) {
        throw new RosRuntimeException("Unable to instantiate node: " + nodeClassName, e);
    } catch (IllegalAccessException e) {
        throw new RosRuntimeException("Unable to instantiate node: " + nodeClassName, e);
    }

    Preconditions.checkState(pubNodeMain != null);
    nodeMainExecutor.execute(pubNodeMain, pubNodeConfiguration);

    // Load the subscriber
    String[] subArgv = {"Listener"};
    CommandLineLoader subLoader = new CommandLineLoader(Lists.newArrayList(subArgv));
    nodeClassName = subLoader.getNodeClassName();
    System.out.println("Loading node class: " + subLoader.getNodeClassName());
    NodeConfiguration subNodeConfiguration = subLoader.build();

    try {
        subNodeMain = (Listener) subLoader.loadClass(nodeClassName);
    } catch (ClassNotFoundException e) {
        throw new RosRuntimeException("Unable to locate node: " + nodeClassName, e);
    } catch (InstantiationException e) {
        throw new RosRuntimeException("Unable to instantiate node: " + nodeClassName, e);
    } catch (IllegalAccessException e) {
        throw new RosRuntimeException("Unable to instantiate node: " + nodeClassName, e);
    }

    Preconditions.checkState(subNodeMain != null);
    nodeMainExecutor.execute(subNodeMain, subNodeConfiguration);
  }

}
Run Code Online (Sandbox Code Playgroud)

小智 12

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>11.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

通过在pom.xml中添加依赖项,我能够解决问题


Mak*_*vin 7

将此依赖项添加到gradle文件中

 compile "com.google.guava:guava:16+"
Run Code Online (Sandbox Code Playgroud)