简体   繁体   English

线程“main”中的异常java.lang.NoClassDefFoundError:org / reactivestreams / Publisher?

[英]Exception in thread “main” java.lang.NoClassDefFoundError: org/reactivestreams/Publisher?

While creating a hello world program I got this exception. 在创建一个hello world程序时,我遇到了这个例外。 Here is the code: 这是代码:

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;

/**
 * Created by veneet on 30/04/17.
 */
public class MainApp {
    public static void main(String[] args) {
        // This is where the exception occurs.
        Observable<String> observable = Observable.create(e -> {
            e.onNext("Hello World!");
            e.onNext("Hello World!");
            e.onNext("Hello World!");
            e.onNext("Hello World!");
            e.onNext("Hello World!");
            e.onNext("Hello World!");

            e.onComplete();
        });
        Observer<String> observer = new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {

            }

            @Override
            public void onNext(String s) {
                System.out.println(s);
            }

            @Override
            public void onError(Throwable e) {
                System.err.println(e.getMessage());
            }

            @Override
            public void onComplete() {

            }
        };
        observable.subscribeOn(Schedulers.io());
        observable.subscribe(observer);

        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

The build.gradle dependencies are like this: build.gradle依赖项是这样的:

dependencies {
    compile "io.reactivex.rxjava2:rxjava:2.1.0"
    // https://mvnrepository.com/artifact/org.reactivestreams/reactive-streams
    compile group: 'org.reactivestreams', name: 'reactive-streams', version: '1.0.0.final'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

The complete stacktrace is like this(I think the first line is totally unrelated, but putting it to ensure): 完整的堆栈跟踪是这样的(我认为第一行完全不相关,但要确保它):

objc[3423]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10b6dc4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10d0194e0). One of the two will be used. Which one is undefined.
Exception in thread "main" java.lang.NoClassDefFoundError: org/reactivestreams/Publisher
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at MainApp.main(MainApp.java:11)
Caused by: java.lang.ClassNotFoundException: org.reactivestreams.Publisher
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 13 more

From the comments: 来自评论:

you don't have to include a dependency on Reactive-Streams because RxJava has a compile-time dependency on it already. 您不必包含对Reactive-Streams的依赖性,因为RxJava已经具有编译时依赖性。 Otherwise, the right version is: 否则,正确的版本是:

compile 'org.reactivestreams:reactive-streams:1.0.0'

and for the Test Compatibility Kit: 并为测试兼容性工具包:

testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0'

The .final was a release mistake I guess. 我认为.final是一个释放错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Selenium - 线程“主”中的异常 java.lang.NoClassDefFoundError: org/reactivestreams/Publisher - Selenium - Exception in thread “main” java.lang.NoClassDefFoundError: org/reactivestreams/Publisher 出现错误 java.lang.NoClassDefFoundError: org/reactivestreams/Publisher - Getting Error java.lang.NoClassDefFoundError: org/reactivestreams/Publisher 线程“main”中的异常 java.lang.NoClassDefFoundError: org/hamcrest/Matchers - Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/Matchers 线程“ main”中的异常java.lang.NoClassDefFoundError:org / mockito / Mockito - Exception in thread “main” java.lang.NoClassDefFoundError: org/mockito/Mockito 线程“main”中的异常java.lang.NoClassDefFoundError:org / json / JSONObject - Exception in thread “main” java.lang.NoClassDefFoundError: org/json/JSONObject 线程“ main”中的异常java.lang.NoClassDefFoundError:org / javatuples / Unit - Exception in thread “main” java.lang.NoClassDefFoundError: org/javatuples/Unit “线程”main“中的异常 java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing” - “Exception in thread ”main“ java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing” 线程“main”中的异常 java.lang.NoClassDefFoundError: org/jsoup/Jsoup - Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/Jsoup 线程“main”java.lang.NoClassDefFoundError中的异常 - Exception in thread “main” java.lang.NoClassDefFoundError 线程“ main” java.lang.NoClassDefFoundError中的异常: - exception in thread“main”java.lang.NoClassDefFoundError:
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM