Jar java编译和运行库

Jar java编译和运行库,jar,runtime,Jar,Runtime,我是java新手,我花了几个小时来解决这个问题。我真的很感谢任何能帮助我的人 问题就在这里 我的项目,比如说ProjectA,需要一个 要编译的库很多,但我 我想我不需要一个叫做 图书馆B.jar。所以这个项目 在没有LibraryB的情况下正确编译 在类路径中 在运行时,程序退出 没有任何错误消息。我没有 知道原因,直到我把 运行时类路径中的LibraryB.jar 我的项目 谁能告诉我为什么会这样?正如我所知,在java中,如果我引用LibraryB.jar,则在编译和链接时需要它。也许我错

我是java新手,我花了几个小时来解决这个问题。我真的很感谢任何能帮助我的人

问题就在这里

  • 我的项目,比如说ProjectA,需要一个 要编译的库很多,但我 我想我不需要一个叫做 图书馆B.jar。所以这个项目 在没有LibraryB的情况下正确编译 在类路径中
  • 在运行时,程序退出 没有任何错误消息。我没有 知道原因,直到我把 运行时类路径中的LibraryB.jar 我的项目

  • 谁能告诉我为什么会这样?正如我所知,在java中,如果我引用LibraryB.jar,则在编译和链接时需要它。也许我错了。

    缺少具体的例子,我只能给你一个高层次的概述:

    如果您的项目使用的LibraryA依赖于LibraryB,但实际上没有在其接口中公开任何LibraryB类(即,它只在内部使用),那么您很容易就会遇到这样的情况:您只需要LibraryA编译,而需要LibraryB实际运行代码

    如果您的应用程序退出时没有错误消息,那么这通常是您自己的错误。特别是对于刚接触Java的人来说,造成这种情况的一个常见原因是空的
    catch
    -块(不要这样做!):


    由于缺乏具体的例子,我只能给大家一个高层次的概述:

    如果您的项目使用的LibraryA依赖于LibraryB,但实际上没有在其接口中公开任何LibraryB类(即,它只在内部使用),那么您很容易就会遇到这样的情况:您只需要LibraryA编译,而需要LibraryB实际运行代码

    如果您的应用程序退出时没有错误消息,那么这通常是您自己的错误。特别是对于刚接触Java的人来说,造成这种情况的一个常见原因是空的
    catch
    -块(不要这样做!):

    try {
      someCodeThatCanThrowAndException();
    } catch (Exception e) 7
      // nothing
    }