V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
miaeLKK
V2EX  ›  Java

为什么 eclipse 和 cmd 运行 jar,运行的类不一致?

  •  
  •   miaeLKK · 2020-12-09 20:01:07 +08:00 · 1657 次点击
    这是一个创建于 1445 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://imgchr.com/i/rPib9g 如图,eclipse 调试,程序跑到了 AppenderAction 类,然后我把这个工程打成 jar,在 jar 包里删除了这个 class,jar 包仍然运行? cmd 和 eclipse 云的是同一个 jre,为了排除 jvm 类缓存问题我也重启电脑了,为什么呢?

    3 条回复    2020-12-09 21:02:13 +08:00
    miaeLKK
        1
    miaeLKK  
    OP
       2020-12-09 20:01:38 +08:00
    今天在调试一个问题,用的 logback+slf4j,为一个普通 java 项目添加日志,在 eclipse 中执行,会有日志在工作空间那个项目里,打成 jar 包就找不到了,为了找到 jar 包的日志,我开始调试,找到日志文件位置字符串后重新编译 logback 下的 class 并添加控制台输出,可我发现 eclipse 控制台输出了,但 jar 包在 cmd 中仍然没有输出,难道没走这个类?我尝试删了 jar 包中的那个 class,jar 包居然还能运行??怎么回事呢?
    miaeLKK
        2
    miaeLKK  
    OP
       2020-12-09 20:01:48 +08:00
    另外我还发现,jar 包里使用接口,执行时的实现类在 cmd 和 eclipse 中不一样,这个不知道是不是不同版本 jdk 导致的,后来我已经使用同一个 jdk 了,但时发现这个类都不进入了。。
    pursuer
        3
    pursuer  
       2020-12-09 21:02:13 +08:00
    要把 eclipse 和 cmd 的执行命令写出来才能查,查 classpath
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2725 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:06 · PVG 18:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.