自自然卷 2017-05-03 03:22 采纳率: 35.7%
浏览 1638
已采纳

java.lang.NoClassDefFoundError

图片说明
linux下使用jedis,运行目录如上图,Main.java内容:

import redis.clients.jedis.exceptions.*;
import redis.clients.jedis.*;
import redis.clients.util.*;
import org.apache.commons.pool2.*;
import org.apache.commons.pool2.proxy.*;
import org.apache.commons.pool2.impl.*;
public class Main{
    public static void main(String[] args){

        Jedis jedis = new Jedis("127.0.0.1",6379);
        jedis.set("s2","123");
        String result = jedis.get("s2");
        System.out.println(result);
        jedis.close();

    }
}

进入该目录下执行
javac -cp jedis-2.7.0.jar:commons-pool2-2.3.jar: Main.java
编译成功,然后运行 java Main报错:
Exception in thread "main" java.lang.NoClassDefFoundError: redis/clients/jedis/Jedis
at Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.Jedis
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more

编译成功了,但是运行时却找不到类?还是说编译其实也有问题,在Main.java中已经把两个外部jar包的所有类都import了。查了网上不少资料了但是还是没解决,平常都用IDE的,这次试试用javac然后就这样了。求解答,谢谢。

  • 写回答

2条回答 默认 最新

  • #朱守成# 2017-05-03 03:36
    关注

    运行的时候没有指定两个外部jar包吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵