【问题标题】:Importing External library in java gives runtime no class found error在 java 中导入外部库会导致运行时找不到类错误
【发布时间】:2014-08-21 23:23:49
【问题描述】:

我正在尝试使用显然是外部的 beanshell 库 (bsh.util)。 此外,我已将 jar 文件添加到库中。 (顺便说一下,我使用的是 netbeans IDE) 但是,我不知道为什么我不断收到此错误:

java.lang.NoClassDefFoundError: bsh/ConsoleInterface
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    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:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    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:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
    at java.lang.Class.getMethod0(Class.java:2764)
    at java.lang.Class.getMethod(Class.java:1653)
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: bsh.ConsoleInterface
    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:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 30 more
Exception in thread "main" Java Result: 1

任何帮助将不胜感激。

【问题讨论】:

  • 你如何添加库,可能是你做错了他们。
  • 我已经做了与 Tomas 链接中指出的相同的事情。但是,不知何故,它仍然在抱怨。一定是我像afzalex所说的那样添加jar文件的方式仍然缺少一些东西。
  • 我只是添加了 bsh-util 包。但是,我需要上传包含整个包的 bsh jar。我这样做了,它奏效了。感谢 afzalex 和 Tomas。

标签: java netbeans noclassdeffounderror beanshell


【解决方案1】:

我只是从 beanshells 库中添加了 bsh-util-2.0b4.jar——它是 util 包——。 但是,我需要上传包含整个包的 bsh jar 文件。 我这样做了,它奏效了。

基本上,这就是我所做的如下: 1) 从http://www.beanshell.org/download.html 下载 bsh-2.0b4.jar 2) 通过项目属性将下载的bsh-2.0b4.jar添加到库中。

感谢 afzalex 和 Tomas。

【讨论】:

    猜你喜欢
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2015-04-22
    相关资源
    最近更新 更多