Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向Webots添加外部JAR?_Java_Jar_Classpath_Webots - Fatal编程技术网

Java 如何向Webots添加外部JAR?

Java 如何向Webots添加外部JAR?,java,jar,classpath,webots,Java,Jar,Classpath,Webots,我正在尝试将外部jar添加到Webots项目中。在IntelliJ中,我只需执行项目结构->模块->依赖项->添加,即可添加外部jar。如何在Webots中做到这一点?我试图更改类路径,但没有成功 我收到以下错误:socket.java:1:error:package org.java\u websocket.client不存在,即使我的计算机上有jar 编辑以响应Olivier: [environment variables with paths] CLASSPATH = ../jars/Ja

我正在尝试将外部jar添加到Webots项目中。在IntelliJ中,我只需执行项目结构->模块->依赖项->添加,即可添加外部jar。如何在Webots中做到这一点?我试图更改类路径,但没有成功

我收到以下错误:
socket.java:1:error:package org.java\u websocket.client不存在
,即使我的计算机上有jar

编辑以响应Olivier:

[environment variables with paths]
CLASSPATH = ../jars/Java-WebSocket-1.3.8.jar
JAVA_LIBRARY_PATH = ../jars

[java]
COMMAND = javaw.exe
OPTIONS = -Xms6144k
我已经添加了上面的代码,但这不起作用

另外,我可以用我的代码提供StackOverflow。这是:

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.handshake.ServerHandshake;
import org.json.JSONObject;

import java.net.URI;
import java.net.URISyntaxException;

public class socket {

  public static void main(String args[]) throws URISyntaxException, InterruptedException {


    WebSocketClient mWs = new WebSocketClient(new URI("ws://localhost:8000"), new Draft_6455()) {
      @Override
      public void onMessage(String message) {
        JSONObject obj = new JSONObject(message);
        String channel = obj.getString("channel");
      }

      @Override
      public void onOpen(ServerHandshake handshake) {
        System.out.println("opened connection");
        this.send("Connection opened");

      }

      @Override
      public void onClose(int code, String reason, boolean remote) {
        System.out.println("closed connection");
      }

      @Override
      public void onError(Exception ex) {
        ex.printStackTrace();
      }

    };

    //open websocket
    mWs.connectBlocking();
    JSONObject obj = new JSONObject();
    obj.put("event", "addChannel");
    obj.put("channel", "ok_btccny_ticker");
    String message = obj.toString();
    //send message
//    mWs.send(message);
  }
}
以及错误:

    javac -Xlint -classpath "C:\Users\user\AppData\Local\Programs\Webots\lib\controller\java\Controller.jar;;." socket.java
socket.java:1: error: package org.java_websocket.client does not exist
import org.java_websocket.client.WebSocketClient;
                                ^
socket.java:2: error: package org.java_websocket.drafts does not exist
import org.java_websocket.drafts.Draft_6455;
                                ^
socket.java:3: error: package org.java_websocket.handshake does not exist
import org.java_websocket.handshake.ServerHandshake;
                                   ^
socket.java:4: error: package org.json does not exist
import org.json.JSONObject;
               ^
socket.java:14: error: cannot find symbol
    WebSocketClient mWs = new WebSocketClient(new URI("ws://localhost:8000"), new Draft_6455()) {
    ^
  symbol:   class WebSocketClient
  location: class socket
socket.java:14: error: cannot find symbol
    WebSocketClient mWs = new WebSocketClient(new URI("ws://localhost:8000"), new Draft_6455()) {
                              ^
  symbol:   class WebSocketClient
  location: class socket
socket.java:14: error: cannot find symbol
    WebSocketClient mWs = new WebSocketClient(new URI("ws://localhost:8000"), new Draft_6455()) {
                                                                                  ^
  symbol:   class Draft_6455
  location: class socket
socket.java:22: error: cannot find symbol
      public void onOpen(ServerHandshake handshake) {
                         ^
  symbol: class ServerHandshake
socket.java:15: error: method does not override or implement a method from a supertype
      @Override
      ^
socket.java:17: error: cannot find symbol
        JSONObject obj = new JSONObject(message);
        ^
  symbol: class JSONObject
socket.java:17: error: cannot find symbol
        JSONObject obj = new JSONObject(message);
                             ^
  symbol: class JSONObject
socket.java:21: error: method does not override or implement a method from a supertype
      @Override
      ^
socket.java:24: error: cannot find symbol
        this.send("Connection opened");
            ^
  symbol: method send(String)
socket.java:28: error: method does not override or implement a method from a supertype
      @Override
      ^
socket.java:33: error: method does not override or implement a method from a supertype
      @Override
      ^
15 errors
printing javac parameters to: C:\Users\user\Documents\my_project3\controllers\socket\javac.20200527_102128.args
Nothing to be done for build targets.

正如您所看到的,由于Webots找不到保存方法/函数的jar,所以出现覆盖错误。

您应该在robot控制器的
runtime.ini
文件中定义
CLASSPATH
变量,如下所述:

; runtime.ini for a Java controller on Windows

[environment variables with paths]
CLASSPATH = ../lib/MyLibrary.jar
JAVA_LIBRARY_PATH = ../lib

[java]
COMMAND = javaw.exe
OPTIONS = -Xms6144k