我是Java的新手,但我必须用它来做一个与WebSocket相关的小项目.
所以,我在我的CentOS 7上在VirtualBox中安装了JDK 1.8.0和NetBeans 8.1.
我加入了泰鲁斯-独立客户端- JDK 1.12插件在pom.xml中做出独立的WebSocket客户端,并建立了良好的.但是,我遇到了以下错误:
[root@cet7 ~]# java -jar "/root/NetBeansProjects/Switchclient/target/Switchclient-1.0-SNAPSHOT.jar"
Exception in thread "main" java.lang.NoClassDefFoundError: javax/websocket/ContainerProvider
at org.sample.switchclient.Switchclient.main(Switchclient.java:21)
Caused by: java.lang.ClassNotFoundException: javax.websocket.ContainerProvider
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)
... 1 more
[root@cet7 ~]# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我没有更多的搜索和发现的"容器实现的完全限定类名ContainerProvider必须在上市META-INF /服务/ javax.websocket.ContainerProvider为在执行JAR文件的文件" ServiceLoader,根据Oracle文档API.所以,我将serviceloader-maven-plugin添加到pom.xml中.结果是它确实生成了META-INF/services/javax.websocket.ContainerProvider文件,但没有任何内容,并且运行时错误继续存在.我尝试手动修改内容并将其重新打包到JAR中,但它没有奏效:
我已经附加了Java文件和pom.xml.我已经工作了几个小时,并且不知道问题是什么,因此对此线程的任何回复都将不胜感激. …