【问题标题】:Jar file doesn't work outside the project folderJar 文件在项目文件夹之外不起作用
【发布时间】:2015-04-23 13:01:23
【问题描述】:

我的 jar 文件不能在项目文件夹之外工作,除非我将它放在与 lib 文件夹相同的目录中。当我从命令行运行 jar 时,我得到了这个:

    C:\Users\Computer>java -jar SG.jar
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/hiber
nate/cfg/AnnotationConfiguration
        at view.PessoaView.<init>(PessoaView.java:27)
        at view.PessoaView$7.run(PessoaView.java:291)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.AnnotationConfigu
ration
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 16 more

与其他“窗口”相同,因为我的应用程序有很多菜单项。我已经提取了jar文件,只是为了检查并且那里没有lib文件夹。我相信它应该。 hibernate 所需的 jar 文件和所有其他所需的 jar 文件都在 lib 文件夹中。有人可以帮忙吗?谢谢.. 这是一个类似问题的链接:

why doesn't my jar file run outside netbeans??

【问题讨论】:

  • “除非我把它放在与 lib 文件夹相同的目录中” - 是的,它就是这样工作的。您的 jar 文件可能有一个清单条目,其中说明了所有依赖 jar 的位置(类路径)
  • 你“可以”看看类似One-Jar
  • 我会检查你说的,谢谢。

标签: java jar


【解决方案1】:

您的问题是您的 jar 不包含执行所需的依赖项。

您的程序需要休​​眠 jar。您可以使用 maven 编译当前 jar 的所有依赖项。

试试这个: Build jar with dependancies

【讨论】:

    【解决方案2】:

    Jar 文件不能包含任何其他 jar 文件。 像蚂蚁这样的一些工具,可以在一个里面装几个罐子,你可以看看蚂蚁。 另一种方法是在运行期间使用java -cp 而不是java -jar 直接指定库的类路径

    【讨论】:

      【解决方案3】:

      运行时可以直接使用java -cp / 指定需要的库的类路径

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-15
        • 1970-01-01
        相关资源
        最近更新 更多